[jboss-cvs] JBossBlog SVN: r33 - in trunk: . blog-core/src/etc/META-INF blog-core/src/etc/conf/hibernate blog-core/src/java/org/jboss/blog/model blog-core/src/java/org/jboss/blog/model/impl blog-core/src/java/org/jboss/blog/service/model blog-core/src/java/org/jboss/blog/service/model/rome blog-core/src/java/org/jboss/blog/service/store blog-core/src/java/org/jboss/blog/service/store/hibernate blog-core/src/java/org/jboss/blog/service/store/model

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Dec 2 17:58:50 EST 2006


Author: adamw
Date: 2006-12-02 17:58:36 -0500 (Sat, 02 Dec 2006)
New Revision: 33

Added:
   trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogComment.java
   trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogItem.java
   trunk/blog-core/src/java/org/jboss/blog/model/BlogComment.java
   trunk/blog-core/src/java/org/jboss/blog/model/BlogItem.java
   trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogCommentImpl.java
   trunk/blog-core/src/java/org/jboss/blog/service/model/rome/
   trunk/blog-core/src/java/org/jboss/blog/service/model/rome/RomeBlogPost.java
   trunk/blog-core/src/java/org/jboss/blog/service/model/rome/RomeParsingBlogModelService.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.hbm.xml
   trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogComment.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogItem.java
Removed:
   trunk/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java
Modified:
   trunk/blog-core/src/etc/META-INF/jboss-service.xml
   trunk/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml
   trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogModel.java
   trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogPost.java
   trunk/blog-core/src/java/org/jboss/blog/model/BlogModel.java
   trunk/blog-core/src/java/org/jboss/blog/model/BlogPost.java
   trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java
   trunk/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml
   trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogModel.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogPost.java
   trunk/jbossblog.iws
Log:
http://jira.jboss.com/jira/browse/JBBLOG-13

Modified: trunk/blog-core/src/etc/META-INF/jboss-service.xml
===================================================================
--- trunk/blog-core/src/etc/META-INF/jboss-service.xml	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/etc/META-INF/jboss-service.xml	2006-12-02 22:58:36 UTC (rev 33)
@@ -58,9 +58,9 @@
         <depends optional-attribute-name="DelegateModelService"
                  proxy-type="attribute">blog:service=RomeParsingModel</depends>
     </mbean>
-    <mbean code="org.jboss.blog.service.model.RomeParsingBlogModelService"
+    <mbean code="org.jboss.blog.service.model.rome.RomeParsingBlogModelService"
            name="blog:service=RomeParsingModel"
-           xmbean-dd="org/jboss/blog/service/model/RomeParsingBlogModelService.xml">
+           xmbean-dd="org/jboss/blog/service/model/rome/RomeParsingBlogModelService.xml">
     </mbean>
 
     <!-- Permissions service -->

Modified: trunk/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml
===================================================================
--- trunk/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml	2006-12-02 22:58:36 UTC (rev 33)
@@ -35,9 +35,11 @@
         <mapping resource="org/jboss/blog/service/store/hibernate/HBlogModel.hbm.xml"/>
         <mapping resource="org/jboss/blog/service/store/hibernate/HBlogModelPost.hbm.xml"/>
         <mapping resource="org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml"/>
+        <mapping resource="org/jboss/blog/service/store/hibernate/HBlogComment.hbm.xml"/>
 
         <class-cache class="org.jboss.blog.service.store.hibernate.HBlogModel" usage="read-write" />
         <class-cache class="org.jboss.blog.service.store.hibernate.HBlogModelPost" usage="read-write" />
         <class-cache class="org.jboss.blog.service.store.hibernate.HBlogPost" usage="read-write" />
+        <class-cache class="org.jboss.blog.service.store.hibernate.HBlogComment" usage="read-write" />
     </session-factory>
 </hibernate-configuration>
\ No newline at end of file

Added: trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogComment.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogComment.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogComment.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -0,0 +1,7 @@
+package org.jboss.blog.model;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public abstract class AbstractBlogComment extends AbstractBlogItem implements BlogComment {
+}

Added: trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogItem.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogItem.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogItem.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -0,0 +1,42 @@
+package org.jboss.blog.model;
+
+import java.text.DateFormat;
+import java.util.Locale;
+
+/**
+ * A base class for {@link BlogItem} implementations, handling date methods.
+ * Not thread safe.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public abstract class AbstractBlogItem implements BlogItem {
+    private boolean dateInitialized;
+    private boolean timeInitialized;
+
+    private String createdDate;
+    private String createdTime;
+
+    public String getCreatedDate() {
+        if (!dateInitialized) {
+            createdDate = DateFormat.getDateInstance(DateFormat.FULL,
+                Locale.getDefault()).format(getCreated());
+            dateInitialized = true;
+        }
+
+        return createdDate;
+    }
+
+    public String getCreatedTime() {
+        if (!timeInitialized) {
+            createdTime = DateFormat.getTimeInstance(DateFormat.SHORT,
+                Locale.getDefault()).format(getCreated());
+            timeInitialized = true;
+        }
+
+        return createdTime;
+    }      
+
+    public int compareTo(Object o) {
+        BlogPost post = (BlogPost) o;
+        return post.getCreated().compareTo(getCreated());
+    }
+}

Modified: trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogModel.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogModel.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogModel.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -7,7 +7,7 @@
  * A base class for {@link BlogModel} implementations.
  * @author Adam Warski (adamw at aster.pl)
  */
-public abstract class AbstractBlogModel implements BlogModel {
+public abstract class AbstractBlogModel extends AbstractBlogItem implements BlogModel {
     public BlogPost getPostByGuid(String guid)
             throws BlogPostDoesNotExistException {
         for (Iterator iter = getPosts().iterator(); iter.hasNext();) {

Modified: trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogPost.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogPost.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogPost.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -2,23 +2,19 @@
 
 import org.jboss.blog.tools.BlogTools;
 
-import java.util.Locale;
-import java.text.DateFormat;
-
 /**
  * A base class for {@link BlogPost} implementations, handling title-as-id
  * and date methods. Not thread safe.
  * @author Adam Warski (adamw at aster.pl)
  */
-public abstract class AbstractBlogPost implements BlogPost {
+public abstract class AbstractBlogPost extends AbstractBlogItem implements BlogPost {
     private boolean titleAsIdInitialized;
-    private boolean dateInitialized;
-    private boolean timeInitialized;
-
-    private String createdDate;
-    private String createdTime;
     private String titleAsId;
 
+    public boolean hasComments() {
+        return ((getComments() == null) || (getComments().size() == 0));
+    }
+
     public String getTitleAsId() {
         if (!titleAsIdInitialized) {
             titleAsId = BlogTools.convertToId(getTitle());
@@ -27,29 +23,4 @@
 
         return titleAsId;
     }
-
-    public String getCreatedDate() {
-        if (!dateInitialized) {
-            createdDate = DateFormat.getDateInstance(DateFormat.FULL,
-                Locale.getDefault()).format(getCreated());
-            dateInitialized = true;
-        }
-
-        return createdDate;
-    }
-
-    public String getCreatedTime() {
-        if (!timeInitialized) {
-            createdTime = DateFormat.getTimeInstance(DateFormat.SHORT,
-                Locale.getDefault()).format(getCreated());
-            timeInitialized = true;
-        }
-
-        return createdTime;
-    }
-
-    public int compareTo(Object o) {
-        BlogPost post = (BlogPost) o;
-        return post.getCreated().compareTo(getCreated());
-    }
 }

Added: trunk/blog-core/src/java/org/jboss/blog/model/BlogComment.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/BlogComment.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/model/BlogComment.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -0,0 +1,8 @@
+package org.jboss.blog.model;
+
+/**
+ * An interface representing a single blog comment
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface BlogComment extends BlogItem {
+}

Added: trunk/blog-core/src/java/org/jboss/blog/model/BlogItem.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/BlogItem.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/model/BlogItem.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -0,0 +1,17 @@
+package org.jboss.blog.model;
+
+import java.util.Date;
+
+/**
+ * A base class for blog items: models, posts and comments.
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface BlogItem extends Comparable{
+    public String getAuthor();
+    public String getTitle();
+    public String getDescription();
+    public Date getCreated();
+    public String getCreatedDate();
+    public String getCreatedTime();    
+    public String getLink();
+}

Modified: trunk/blog-core/src/java/org/jboss/blog/model/BlogModel.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/BlogModel.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/model/BlogModel.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -1,6 +1,5 @@
 package org.jboss.blog.model;
 
-import java.util.Date;
 import java.util.Set;
 import java.util.List;
 
@@ -9,13 +8,7 @@
  * posts, together with basic blog information.
  * @author Adam Warski (adamw at aster.pl)
  */
-public interface BlogModel {
-    public String getAuthor();
-    public String getTitle();
-    public String getDescription();
-    public String getLink();
-    public Date getCreated();
-
+public interface BlogModel extends BlogItem {
     /**
      * Gets all posts that are in this model. Invoking this method is
      * discouraged. If possible, use {@link BlogModel#getPosts(int, int)}.

Modified: trunk/blog-core/src/java/org/jboss/blog/model/BlogPost.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/BlogPost.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/model/BlogPost.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -1,21 +1,14 @@
 package org.jboss.blog.model;
 
-import java.util.Date;
 import java.util.Set;
+import java.util.List;
 
 /**
  * An interface representing a single blog post.
  * @author Adam Warski (adamw at aster.pl)
  */
-public interface BlogPost extends Comparable {
-    public String getAuthor();
-    public String getTitle();
+public interface BlogPost extends BlogItem {
     public String getTitleAsId();
-    public String getDescription();
-    public Date getCreated();
-    public String getCreatedDate();
-    public String getCreatedTime();
-    public String getLink();
     public String getGuid();
 
     /**
@@ -27,6 +20,22 @@
 
     /**
      *
+     * @return True iff this post has any comments.
+     */
+    public boolean hasComments();
+
+    /**
+     *
+     * @return A list of all comments for this item. Objects in the list
+     * implements the {@link BlogComment} interface. If the blog doesn't
+     * have/support comments, null is returned (this is different from the
+     * situation where a blog supports comments, but there are no comments
+     * to this post - in this case, an empty list is returned).
+     */
+    public List getComments();
+
+    /**
+     *
      * @return Immutable set of {@link java.lang.String} - name of categories to
      * which this post belongs.
      */

Added: trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogCommentImpl.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogCommentImpl.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogCommentImpl.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -0,0 +1,47 @@
+package org.jboss.blog.model.impl;
+
+import org.jboss.blog.model.AbstractBlogComment;
+
+import java.util.Date;
+
+/**
+ * A simple java-bean implementation of the comment interface.
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class BlogCommentImpl extends AbstractBlogComment {
+    private String author;
+    private String title;
+    private String description;
+    private Date created;
+    private String link;
+
+    public BlogCommentImpl(String author, String title,
+                           String description, Date created,
+                           String link) {
+        this.author = author;
+        this.title = title;
+        this.description = description;
+        this.created = created;
+        this.link = link;
+    }
+
+    public String getAuthor() {
+        return author;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public Date getCreated() {
+        return created;
+    }
+
+    public String getLink() {
+        return link;
+    }
+}

Modified: trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -19,10 +19,11 @@
     private String guid;
     private Set categories;
     private String commentLink;
+    private List comments;
 
     public BlogPostImpl(String author, String title, String description,
                         Date created, String link, String guid,
-                        Set categories, String commentLink) {
+                        Set categories, String commentLink, List comments) {
         this.author = author;
         this.title = title;
         this.description = description;
@@ -31,6 +32,7 @@
         this.guid = guid;
         this.categories = categories;
         this.commentLink = commentLink;
+        this.comments = comments;
     }
 
     public String getAuthor() {
@@ -64,4 +66,8 @@
     public String getCommentLink() {
         return commentLink;
     }
+
+    public List getComments() {
+        return comments;
+    }
 }

Modified: trunk/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -8,6 +8,6 @@
  */
 public class EmptyBlogPost extends BlogPostImpl {
     public EmptyBlogPost() {
-        super("", "", "", new Date(), "", "", new HashSet(), null);
+        super("", "", "", new Date(), "", "", new HashSet(), null, null);
     }
 }

Deleted: trunk/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -1,98 +0,0 @@
-package org.jboss.blog.service.model;
-
-import org.jboss.blog.model.BlogModel;
-import org.jboss.blog.model.BlogModelDoesNotExistException;
-import org.jboss.blog.model.impl.BlogPostImpl;
-import org.jboss.blog.model.impl.BlogModelImpl;
-import org.jboss.blog.BlogName;
-import org.jboss.blog.service.AbstractBlogService;
-import org.jboss.blog.rome.CommentRssModule;
-import org.jboss.blog.tools.BlogTools;
-
-import java.util.*;
-import java.net.URL;
-import java.io.IOException;
-
-import com.sun.syndication.io.SyndFeedInput;
-import com.sun.syndication.io.XmlReader;
-import com.sun.syndication.io.FeedException;
-import com.sun.syndication.feed.synd.SyndFeed;
-import com.sun.syndication.feed.synd.SyndEntry;
-import com.sun.syndication.feed.synd.SyndCategory;
-
-/**
- * @author Adam Warski (adamw at aster.pl)
- *
- * @jmx.mbean
- * @jboss.xmbean
- */
-public class RomeParsingBlogModelService extends AbstractBlogService implements BlogModelService {
-    public RomeParsingBlogModelService() {
-
-    }
-
-    private Set getStringCategories(List categories) {
-        if (categories == null) {
-            return null;
-        }
-
-        Set ret = new HashSet();
-        for (Iterator iter = categories.iterator(); iter.hasNext();) {
-            ret.add(((SyndCategory) iter.next()).getName());
-        }
-
-        return ret;
-    }
-
-    /**
-     * @jmx.managed-operation
-     * @jmx.managed-parameter type="org.jboss.blog.BlogName"
-     */
-    public BlogModel getBlogModel(BlogName name) throws BlogModelDoesNotExistException {
-        if (name.getId() == null) {
-            throw new BlogModelDoesNotExistException("No blog selected (null blog id)");
-        }
-
-        // Parsing the feed, which's address is the id of the selected blog.
-        SyndFeedInput input = new SyndFeedInput();
-        SyndFeed inFeed;
-        try {
-            inFeed = input.build(new XmlReader(new URL(name.getId()).openStream()));
-        } catch (IOException e) {
-            throw new BlogModelDoesNotExistException(e);
-        } catch (FeedException e) {
-            throw new BlogModelDoesNotExistException(e);
-        }
-        
-        List posts = new ArrayList();
-
-        String defaultAuthor = inFeed.getAuthor();
-        for (Iterator iter = inFeed.getEntries().iterator(); iter.hasNext();) {
-            SyndEntry post = (SyndEntry) iter.next();
-
-            CommentRssModule commRssModule = (CommentRssModule)
-                    post.getModule("http://wellformedweb.org/CommentAPI/");
-            String commentsRss = null;
-            if (commRssModule != null) {
-                commentsRss = commRssModule.getCommentRss();
-                if (commentsRss != null) {
-                    commentsRss = commentsRss.trim();
-                }
-            }
-
-            String author = post.getAuthor();
-            posts.add(new BlogPostImpl(
-                    BlogTools.isEmpty(author) ? defaultAuthor : author,
-                    post.getTitle(), post.getDescription().getValue(),
-                    post.getPublishedDate(), post.getLink(),
-                    post.getUri(),
-                    Collections.unmodifiableSet(getStringCategories(post.getCategories())),
-                    commentsRss));
-        }
-
-        return new BlogModelImpl(inFeed.getAuthor(), inFeed.getTitle(),
-                inFeed.getDescription(), inFeed.getLink(),
-                inFeed.getPublishedDate(), Collections.unmodifiableList(posts),
-                Collections.unmodifiableSet(getStringCategories(inFeed.getCategories())));
-    }
-}

Added: trunk/blog-core/src/java/org/jboss/blog/service/model/rome/RomeBlogPost.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/model/rome/RomeBlogPost.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/model/rome/RomeBlogPost.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -0,0 +1,59 @@
+package org.jboss.blog.service.model.rome;
+
+import org.jboss.blog.model.impl.BlogPostImpl;
+import org.jboss.blog.model.impl.BlogCommentImpl;
+import org.jboss.blog.tools.BlogTools;
+
+import java.util.*;
+import java.net.URL;
+
+import com.sun.syndication.io.SyndFeedInput;
+import com.sun.syndication.io.XmlReader;
+import com.sun.syndication.feed.synd.SyndFeed;
+import com.sun.syndication.feed.synd.SyndEntry;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class RomeBlogPost extends BlogPostImpl {
+    private boolean commentsInitialized;
+    private List comments;
+
+    public RomeBlogPost(String author, String title, String description, Date created,
+                        String link, String guid, Set categories, String commentLink) {
+        super(author, title, description, created, link, guid, categories, commentLink, null);
+    }
+
+    public List getComments() {
+        if (!commentsInitialized) {
+            commentsInitialized = true;
+
+            if (getCommentLink() == null) {
+                return null;
+            }
+
+            try {
+                SyndFeedInput input = new SyndFeedInput();
+                SyndFeed inFeed;
+                inFeed = input.build(new XmlReader(new URL(getCommentLink()).openStream()));
+
+                comments = new ArrayList();
+
+                String defaultAuthor = inFeed.getAuthor();
+                for (Iterator iter = inFeed.getEntries().iterator(); iter.hasNext();) {
+                    SyndEntry post = (SyndEntry) iter.next();
+
+                    String author = post.getAuthor();
+                    comments.add(new BlogCommentImpl(
+                            BlogTools.isEmpty(author) ? defaultAuthor : author,
+                            post.getTitle(), post.getDescription().getValue(),
+                            post.getPublishedDate(), post.getLink()));
+                }
+            } catch (Exception e) {
+                comments = null;
+            }
+        }
+
+        return comments;
+    }
+}

Copied: trunk/blog-core/src/java/org/jboss/blog/service/model/rome/RomeParsingBlogModelService.java (from rev 26, trunk/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java)
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java	2006-11-11 14:25:51 UTC (rev 26)
+++ trunk/blog-core/src/java/org/jboss/blog/service/model/rome/RomeParsingBlogModelService.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -0,0 +1,99 @@
+package org.jboss.blog.service.model.rome;
+
+import org.jboss.blog.model.BlogModel;
+import org.jboss.blog.model.BlogModelDoesNotExistException;
+import org.jboss.blog.model.impl.BlogPostImpl;
+import org.jboss.blog.model.impl.BlogModelImpl;
+import org.jboss.blog.BlogName;
+import org.jboss.blog.service.AbstractBlogService;
+import org.jboss.blog.service.model.BlogModelService;
+import org.jboss.blog.rome.CommentRssModule;
+import org.jboss.blog.tools.BlogTools;
+
+import java.util.*;
+import java.net.URL;
+import java.io.IOException;
+
+import com.sun.syndication.io.SyndFeedInput;
+import com.sun.syndication.io.XmlReader;
+import com.sun.syndication.io.FeedException;
+import com.sun.syndication.feed.synd.SyndFeed;
+import com.sun.syndication.feed.synd.SyndEntry;
+import com.sun.syndication.feed.synd.SyndCategory;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ *
+ * @jmx.mbean
+ * @jboss.xmbean
+ */
+public class RomeParsingBlogModelService extends AbstractBlogService implements BlogModelService {
+    public RomeParsingBlogModelService() {
+
+    }
+
+    private Set getStringCategories(List categories) {
+        if (categories == null) {
+            return null;
+        }
+
+        Set ret = new HashSet();
+        for (Iterator iter = categories.iterator(); iter.hasNext();) {
+            ret.add(((SyndCategory) iter.next()).getName());
+        }
+
+        return ret;
+    }
+
+    /**
+     * @jmx.managed-operation
+     * @jmx.managed-parameter type="org.jboss.blog.BlogName"
+     */
+    public BlogModel getBlogModel(BlogName name) throws BlogModelDoesNotExistException {
+        if (name.getId() == null) {
+            throw new BlogModelDoesNotExistException("No blog selected (null blog id)");
+        }
+
+        // Parsing the feed, which's address is the id of the selected blog.
+        SyndFeedInput input = new SyndFeedInput();
+        SyndFeed inFeed;
+        try {
+            inFeed = input.build(new XmlReader(new URL(name.getId()).openStream()));
+        } catch (IOException e) {
+            throw new BlogModelDoesNotExistException(e);
+        } catch (FeedException e) {
+            throw new BlogModelDoesNotExistException(e);
+        }
+        
+        List posts = new ArrayList();
+
+        String defaultAuthor = inFeed.getAuthor();
+        for (Iterator iter = inFeed.getEntries().iterator(); iter.hasNext();) {
+            SyndEntry post = (SyndEntry) iter.next();
+
+            CommentRssModule commRssModule = (CommentRssModule)
+                    post.getModule("http://wellformedweb.org/CommentAPI/");
+            String commentsRss = null;
+            if (commRssModule != null) {
+                commentsRss = commRssModule.getCommentRss();
+                if (commentsRss != null) {
+                    commentsRss = commentsRss.trim();
+                }
+            }
+
+            String author = post.getAuthor();
+            posts.add(new RomeBlogPost(
+                    BlogTools.isEmpty(author) ? defaultAuthor : author,
+                    post.getTitle(), post.getDescription().getValue(),
+                    post.getPublishedDate(), post.getLink(),
+                    post.getUri(),
+                    Collections.unmodifiableSet(getStringCategories(post.getCategories())),
+                    commentsRss));
+        }
+
+        return new BlogModelImpl(inFeed.getAuthor(), inFeed.getTitle(),
+                inFeed.getDescription(), inFeed.getLink(),
+                inFeed.getPublishedDate(), Collections.unmodifiableList(posts),
+                Collections.unmodifiableSet(getStringCategories(inFeed.getCategories())));
+    }
+}

Modified: trunk/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -86,6 +86,15 @@
     public void deletePost(ModifiableBlogPost post)
             throws IllegalArgumentException;
 
+    /**
+     * Deletes the given comment.
+     * @param comment Comment to delete.
+     * @throws IllegalArgumentException If comment is null, is a new
+     * comment or wasn't obtained from this store service.
+     */
+    public void deleteComment(ModifiableBlogComment comment)
+            throws IllegalArgumentException;
+
     // Factory methods
 
     /**
@@ -107,4 +116,12 @@
      * blog model and saved.
      */
     public ModifiableBlogPost newBlogPost();
+
+    /**
+     * Creates a new blog comment. To later save the it, simply add it
+     * to a post.
+     * @return A new blog comment, which can be later added to a
+     * blog post and saved.
+     */
+    public ModifiableBlogComment newBlogComment();
 }

Added: trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.hbm.xml
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.hbm.xml	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.hbm.xml	2006-12-02 22:58:36 UTC (rev 33)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.jboss.blog.service.store.hibernate">
+    <class name="HBlogComment"
+           table="BLOG_COMMENTS">
+        <id name="id" column="COMMENT_ID">
+            <generator class="native" />
+        </id>
+
+        <many-to-one name="post" column="POST" not-null="true" class="HBlogPost" />
+        
+        <property name="author" column="AUTHOR" not-null="true" />
+
+        <property name="created" column="CREATED" not-null="true" type="timestamp"
+                  update="false" />
+
+        <property name="title" column="TITLE" not-null="true" />
+
+        <property name="link" column="LINK" />
+        
+        <property name="description" column="DESCRIPTION" type="text" />
+    </class>
+</hibernate-mapping>
\ No newline at end of file

Added: trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -0,0 +1,79 @@
+package org.jboss.blog.service.store.hibernate;
+
+import org.jboss.blog.model.AbstractBlogComment;
+import org.jboss.blog.service.store.model.ModifiableBlogComment;
+
+import java.util.Date;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class HBlogComment extends AbstractBlogComment implements ModifiableBlogComment {
+    private Integer id;
+    private String author;
+    private String title;
+    private String description;
+    private Date created;
+    private String link;
+    private HBlogPost post;
+
+    public HBlogComment() {
+
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getAuthor() {
+        return author;
+    }
+
+    public HBlogPost getPost() {
+        return post;
+    }
+
+    public void setPost(HBlogPost post) {
+        this.post = post;
+    }
+
+    public void setAuthor(String author) {
+        this.author = author;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public Date getCreated() {
+        return created;
+    }
+
+    public void setCreated(Date created) {
+        this.created = created;
+    }
+
+    public String getLink() {
+        return link;
+    }
+
+    public void setLink(String link) {
+        this.link = link;
+    }
+}

Modified: trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -141,9 +141,12 @@
         if (posts == null) {
             posts = new ArrayList();
             modelPosts = getModelPosts();
+            HibernateBlogStoreService storeService = getStoreService();
 
             for (Iterator iter = modelPosts.iterator(); iter.hasNext();) {
-                posts.add(((HBlogModelPost) iter.next()).getPost());
+                HBlogPost post = ((HBlogModelPost) iter.next()).getPost();
+                post.setStoreService(storeService);
+                posts.add(post);
             }
 
             Collections.sort(posts);

Modified: trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml	2006-12-02 22:58:36 UTC (rev 33)
@@ -31,5 +31,10 @@
             <key column="POST_ID" not-null="true" />
             <one-to-many class="HBlogModelPost" />
         </bag>
+
+        <bag name="comments" order-by="created desc" inverse="true">
+            <key column="POST_ID" not-null="true" />
+            <one-to-many class="HBlogComment" />
+        </bag>
     </class>
 </hibernate-mapping>
\ No newline at end of file

Modified: trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -1,6 +1,7 @@
 package org.jboss.blog.service.store.hibernate;
 
 import org.jboss.blog.service.store.model.ModifiableBlogPost;
+import org.jboss.blog.service.store.model.ModifiableBlogComment;
 import org.jboss.blog.model.AbstractBlogPost;
 import org.jboss.blog.tools.BlogTools;
 
@@ -20,9 +21,12 @@
     private String titleAsId;
     private Date created;
 
+    private List comments;
     private List modelPosts;
     private Set categories;
 
+    private HibernateBlogStoreService storeService;
+
     public HBlogPost() {
 
     }
@@ -104,6 +108,14 @@
         this.created = created;
     }
 
+    public List getComments() {
+        return comments;
+    }
+
+    public void setComments(List comments) {
+        this.comments = comments;
+    }
+
     public List getModelPosts() {
         return modelPosts;
     }
@@ -122,4 +134,25 @@
 
         return Collections.unmodifiableSet(categories);
     }
+
+    public HibernateBlogStoreService getStoreService() {
+        return storeService;
+    }
+
+    public void setStoreService(HibernateBlogStoreService storeService) {
+        this.storeService = storeService;
+    }
+
+    public void addComment(ModifiableBlogComment comment) throws IllegalArgumentException {
+        HibernateBlogStoreService storeService = getStoreService();
+        HBlogComment hcomment = storeService.castAndAssertBlogComment(comment);
+
+        storeService.addComment(this, hcomment);
+    }
+
+    public void removeComment(ModifiableBlogComment comment) throws IllegalArgumentException {
+        HibernateBlogStoreService storeService = getStoreService();
+
+        storeService.deleteComment(comment);
+    }
 }

Modified: trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -4,6 +4,7 @@
 import org.jboss.blog.service.store.model.ModifiableBlogModel;
 import org.jboss.blog.service.store.model.ModifiableBlogPost;
 import org.jboss.blog.service.store.model.BlogModelAlreadyExistsException;
+import org.jboss.blog.service.store.model.ModifiableBlogComment;
 import org.jboss.blog.service.AbstractBlogService;
 import org.jboss.blog.BlogName;
 import org.jboss.blog.model.BlogModelDoesNotExistException;
@@ -63,6 +64,15 @@
         return (HBlogPost) post;
     }
 
+    HBlogComment castAndAssertBlogComment(ModifiableBlogComment comment) {
+        BlogTools.assertNotNull(comment, "Blog comment cannot be null.");
+        if (!(comment instanceof HBlogComment)) {
+            throw new IllegalArgumentException("Comment must be obtained from this store service.");
+        }
+
+        return (HBlogComment) comment;
+    }
+
     /**
      * @jmx.managed-operation
      */
@@ -160,8 +170,16 @@
     public ModifiableBlogPost newBlogPost() {
         HBlogPost post = new HBlogPost();
         post.setModelPosts(new ArrayList());
+        post.setStoreService(this);
 
         return post;
+    }    
+
+    /**
+     * @jmx.managed-operation
+     */
+    public ModifiableBlogComment newBlogComment() {
+        return new HBlogComment();
     }
 
     /**
@@ -226,6 +244,19 @@
         sf.getCurrentSession().delete(hpost);
     }
 
+    /**
+     * @jmx.managed-operation
+     * @jmx.managed-parameter type="org.jboss.blog.service.store.model.ModifiableBlogComment"
+     */
+    public void deleteComment(ModifiableBlogComment comment) {
+        HBlogComment hcomment = castAndAssertBlogComment(comment);
+        if (hcomment.getId() == null) {
+            throw new IllegalArgumentException("Cannot delete a new comment.");
+        }
+
+        sf.getCurrentSession().delete(hcomment);
+    }
+
     //
 
     /**
@@ -275,6 +306,21 @@
     }
 
     /**
+     * To the given blog post, adds the given comment.
+     * @param post Post to which the comment should be added.
+     * @param comment Comment to add.
+     */
+    void addComment(HBlogPost post, HBlogComment comment) {
+        HBlogPost hpost = castAndAssertBlogPost(post);
+        HBlogComment hcomment = castAndAssertBlogComment(comment);
+
+        hcomment.setPost(hpost);
+
+        hpost.getComments().add(hcomment);
+        sf.getCurrentSession().saveOrUpdate(hcomment);
+    }
+
+    /**
      * Gets posts for the given model which, when sorted, are between the given
      * indexes in the list of all posts.
      * @param model Model for which to get the posts.
@@ -284,11 +330,17 @@
      * in the list of all posts.
      */
     List getPosts(HBlogModel model, int from, int to) {
-        return sf.getCurrentSession().createQuery(
+        List posts = sf.getCurrentSession().createQuery(
                 "select bmp.post from HBlogModelPost bmp where bmp.model = :model " +
                         "order by bmp.post.created desc")
                 .setEntity("model", model).setFirstResult(from)
                 .setMaxResults(to-from).list();
+
+        for (Iterator iter = posts.iterator(); iter.hasNext();) {
+            ((HBlogPost) iter.next()).setStoreService(this);
+        }
+
+        return posts;
     }
 
     /**
@@ -299,9 +351,13 @@
      * post exists.
      */
     HBlogPost getPostByTitleAsId(HBlogModel model, String titleAsId) {
-        return (HBlogPost) sf.getCurrentSession().createQuery(
+        HBlogPost ret = (HBlogPost) sf.getCurrentSession().createQuery(
                 "select bmp.post from HBlogModelPost bmp where bmp.model = :model " +
                         "and bmp.post.titleAsId = :titleAsId").setEntity("model", model)
                 .setParameter("titleAsId", titleAsId).uniqueResult();
+
+        ret.setStoreService(this);
+
+        return ret;
     }
 }

Added: trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogComment.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogComment.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogComment.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -0,0 +1,9 @@
+package org.jboss.blog.service.store.model;
+
+import org.jboss.blog.model.BlogComment;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface ModifiableBlogComment extends ModifiableBlogItem, BlogComment {
+}

Added: trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogItem.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogItem.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogItem.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -0,0 +1,16 @@
+package org.jboss.blog.service.store.model;
+
+import org.jboss.blog.model.BlogItem;
+
+import java.util.Date;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface ModifiableBlogItem extends BlogItem { 
+    public void setAuthor(String author);
+    public void setTitle(String title);
+    public void setDescription(String description);
+    public void setLink(String link);
+    public void setCreated(Date created);
+}

Modified: trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogModel.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogModel.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogModel.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -3,20 +3,12 @@
 import org.jboss.blog.model.BlogModel;
 import org.jboss.blog.model.BlogPostDoesNotExistException;
 
-import java.util.Date;
 import java.util.Set;
-import java.util.List;
 
 /**
  * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
  */
-public interface ModifiableBlogModel extends BlogModel {
-    public void setAuthor(String author);
-    public void setTitle(String title);
-    public void setDescription(String description);
-    public void setLink(String link);
-    public void setCreated(Date created);
-
+public interface ModifiableBlogModel extends BlogModel, ModifiableBlogItem {
     /**
      *
      * @return Set containg {@link ModifiableBlogModel#getCategory()} - name of

Modified: trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogPost.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogPost.java	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogPost.java	2006-12-02 22:58:36 UTC (rev 33)
@@ -2,18 +2,32 @@
 
 import org.jboss.blog.model.BlogPost;
 
-import java.util.Date;
-import java.util.Set;
-
 /**
  * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
  */
-public interface ModifiableBlogPost extends BlogPost {
-    public void setAuthor(String author);
-    public void setTitle(String title);
-    public void setDescription(String description);
-    public void setCreated(Date created);
-    public void setLink(String link);
+public interface ModifiableBlogPost extends BlogPost, ModifiableBlogItem {
     public void setGuid(String guid);
     public void setCommentLink(String commentLink);
+
+    /**
+     * Adds the given comment to this blog post. This method should be used
+     * instead of modifying the {@link ModifiableBlogPost#getComments()} ()}
+     * list.
+     * @param comment Comment to add.
+     * @throws IllegalArgumentException If comment is null, or
+     * it hasn't been obtained in a proper way.
+     */
+    public void addComment(ModifiableBlogComment comment)
+            throws IllegalArgumentException;
+
+    /**
+     * Removes the given comment from this blog post. This method should be used
+     * instead of modifying the {@link ModifiableBlogPost#getComments()}
+     * list.
+     * @param comment Post to remove.
+     * @throws IllegalArgumentException If either comment is null, or
+     * it hasn't been obtained in a proper way.
+     */
+    public void removeComment(ModifiableBlogComment comment)
+            throws IllegalArgumentException;
 }

Modified: trunk/jbossblog.iws
===================================================================
--- trunk/jbossblog.iws	2006-11-23 14:00:40 UTC (rev 32)
+++ trunk/jbossblog.iws	2006-12-02 22:58:36 UTC (rev 33)
@@ -17,12 +17,34 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" name="Default" comment="">
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/caching/CachingBlogModelService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/caching/CachingBlogModelService.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogComment.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/etc/META-INF/jboss-service.xml" afterPath="$PROJECT_DIR$/blog-core/src/etc/META-INF/jboss-service.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogPost.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogPost.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/rome/RomeBlogPost.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogItem.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogPost.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogPost.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogItem.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/rome" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/rome/RomeParsingBlogModelService.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogItem.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogPost.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogPost.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogModel.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogModel.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml" afterPath="$PROJECT_DIR$/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogModel.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogModel.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogModel.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogModel.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/etc/conf" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/etc/conf/hibernate" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogComment.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogComment.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.hbm.xml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/BlogCommentImpl.java" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java" afterPath="" />
     </list>
   </component>
   <component name="ChangeListSynchronizer" />
@@ -147,44 +169,78 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file leaf-file-name="hibernate.cfg.xml" pinned="false" current="true" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml">
+      <file leaf-file-name="HBlogModel.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="37" column="29" selection-start="1755" selection-end="1755" vertical-scroll-proportion="0.888">
+            <state line="165" column="48" selection-start="4229" selection-end="4229" vertical-scroll-proportion="0.63022506">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="HBlogModel.hbm.xml" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.hbm.xml">
+      <file leaf-file-name="HBlogComment.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="7" column="32" selection-start="310" selection-end="310" vertical-scroll-proportion="0.1640625">
+            <state line="38" column="0" selection-start="811" selection-end="811" vertical-scroll-proportion="0.511254">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="jboss-service.xml" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/blog-core/src/etc/META-INF/jboss-service.xml">
+      <file leaf-file-name="HBlogPost.hbm.xml" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="76" column="73" selection-start="4033" selection-end="4033" vertical-scroll-proportion="1.0176">
+            <state line="34" column="66" selection-start="1240" selection-end="1240" vertical-scroll-proportion="0.8199357">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
+      <file leaf-file-name="HBlogComment.hbm.xml" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.hbm.xml">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="12" column="83" selection-start="497" selection-end="497" vertical-scroll-proportion="0.28938907">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
       <file leaf-file-name="HibernateBlogStoreService.java" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="304" column="16" selection-start="10882" selection-end="10882" vertical-scroll-proportion="1.1136">
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
+            <state line="316" column="30" selection-start="10929" selection-end="10929" vertical-scroll-proportion="1.0889621">
+              <folding />
             </state>
           </provider>
         </entry>
       </file>
+      <file leaf-file-name="HBlogPost.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="18" column="24" selection-start="588" selection-end="588" vertical-scroll-proportion="0.31350482">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="BlogPost.java" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogPost.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="22" column="51" selection-start="529" selection-end="529" vertical-scroll-proportion="0.50643086">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="PostEdit.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/PostEdit.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="16" column="13" selection-start="520" selection-end="520" vertical-scroll-proportion="-4.822076">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
     </leaf>
   </component>
   <component name="FindManager">
@@ -400,6 +456,40 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-core" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
           <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
@@ -480,6 +570,48 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/model" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-core" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
           <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
@@ -560,7 +692,7 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/caching" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/rome" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
       </PATH>
@@ -582,6 +714,78 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-core" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-core" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
           <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/etc" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
@@ -655,7 +859,7 @@
       <showLibraryContents />
       <hideEmptyPackages />
       <abbreviatePackageNames />
-      <showStructure Favorites="false" PackagesPane="false" Scope="false" ProjectPane="false" />
+      <showStructure PackagesPane="false" ProjectPane="false" Scope="false" Favorites="false" />
       <autoscrollToSource />
       <autoscrollFromSource />
       <sortByType />
@@ -683,11 +887,11 @@
       <recent name="org.jboss.blog.service.configuration" />
     </key>
     <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
+      <recent name="org.jboss.blog.service.model.rome" />
       <recent name="org.jboss.blog.service.model.caching" />
       <recent name="org.jboss.blog.service.store.hibernate" />
       <recent name="org.jboss.blog.service.store.hibernate.filter" />
       <recent name="org.jboss.blog.model.impl" />
-      <recent name="org.jboss.blog.service.permissions" />
     </key>
   </component>
   <component name="RestoreUpdateTree" />
@@ -702,6 +906,18 @@
       <option name="ENABLE_SWING_INSPECTOR" value="false" />
       <module name="" />
     </configuration>
+    <configuration default="true" type="Applet" factoryName="Applet">
+      <module name="" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="HTML_FILE_NAME" />
+      <option name="HTML_USED" value="false" />
+      <option name="WIDTH" value="400" />
+      <option name="HEIGHT" value="300" />
+      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
+      <option name="VM_PARAMETERS" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+    </configuration>
     <configuration default="true" type="JUnit" factoryName="JUnit" enabled="false" merge="false">
       <module name="" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
@@ -721,18 +937,6 @@
         <option name="Make" value="true" />
       </method>
     </configuration>
-    <configuration default="true" type="Applet" factoryName="Applet">
-      <module name="" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="HTML_FILE_NAME" />
-      <option name="HTML_USED" value="false" />
-      <option name="WIDTH" value="400" />
-      <option name="HEIGHT" value="300" />
-      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
-      <option name="VM_PARAMETERS" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-    </configuration>
     <configuration default="true" type="Remote" factoryName="Remote">
       <option name="USE_SOCKET_TRANSPORT" value="true" />
       <option name="SERVER_MODE" value="false" />
@@ -818,7 +1022,7 @@
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="25" width="1690" height="1004" extended-state="6" />
-    <editor active="false" />
+    <editor active="true" />
     <layout>
       <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="2" />
       <window_info id="CVS" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="13" />
@@ -827,7 +1031,7 @@
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.26118946" order="0" />
       <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32839224" order="1" />
       <window_info id="Structure" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24367674" order="7" />
-      <window_info id="Messages" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.22690992" order="9" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.22690992" order="9" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39977092" order="6" />
       <window_info id="Module Dependencies" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="4" />
       <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="10" />
@@ -936,127 +1140,107 @@
     <option name="myLastEditedConfigurable" value="Project Default" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-permissions.xml">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="33" column="42" selection-start="1342" selection-end="1342" vertical-scroll-proportion="0.81280786">
+        <state line="86" column="43" selection-start="3364" selection-end="3364" vertical-scroll-proportion="0.5615942">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/web/views/blog_view.xhtml">
-      <provider editor-type-id="HtmlPreview">
-        <state />
-      </provider>
+    <entry file="file://$PROJECT_DIR$/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="66" column="33" selection-start="2989" selection-end="2989" vertical-scroll-proportion="0.7941681">
+        <state line="42" column="79" selection-start="2231" selection-end="2231" vertical-scroll-proportion="0.77490777">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/web/views/post_view.xhtml">
-      <provider editor-type-id="HtmlPreview">
-        <state />
-      </provider>
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.hbm.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="34" column="99" selection-start="1271" selection-end="1347" vertical-scroll-proportion="0.8279221">
+        <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/web/views/view.xhtml">
-      <provider editor-type-id="HtmlPreview">
-        <state />
-      </provider>
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModelPost.hbm.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="19" column="54" selection-start="927" selection-end="927" vertical-scroll-proportion="0.47420964">
+        <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/web/views/post_mod.xhtml">
-      <provider editor-type-id="HtmlPreview">
-        <state />
-      </provider>
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="60" column="37" selection-start="2753" selection-end="2753" vertical-scroll-proportion="0.8198052">
+        <state line="165" column="48" selection-start="4229" selection-end="4229" vertical-scroll-proportion="0.63022506">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/web/WEB-INF/portlet-instances.xml">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="35" column="71" selection-start="1322" selection-end="1322" vertical-scroll-proportion="0.817757">
+        <state line="34" column="66" selection-start="1240" selection-end="1240" vertical-scroll-proportion="0.8199357">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/BlogView.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.hbm.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="81" column="31" selection-start="2205" selection-end="2205" vertical-scroll-proportion="0.21028037">
+        <state line="12" column="83" selection-start="497" selection-end="497" vertical-scroll-proportion="0.28938907">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/web/WEB-INF/faces-config.xml">
-      <provider editor-type-id="com.intellij.jsf.ui.FacesConfigEditorProvider">
-        <state />
-      </provider>
-      <provider editor-type-id="com.intellij.jsf.yfilesGraph.editor.FacesNavigationFileEditorProvider">
-        <state />
-      </provider>
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="16" column="103" selection-start="748" selection-end="748" vertical-scroll-proportion="0.38961038">
+        <state line="38" column="0" selection-start="811" selection-end="811" vertical-scroll-proportion="0.511254">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/caching/BlogLock.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="5" column="21" selection-start="224" selection-end="224" vertical-scroll-proportion="0.088652484">
+        <state line="316" column="30" selection-start="10929" selection-end="10929" vertical-scroll-proportion="1.0889621">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/BlogName.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="12" column="13" selection-start="334" selection-end="334" vertical-scroll-proportion="-0.2578125">
+        <state line="18" column="24" selection-start="588" selection-end="588" vertical-scroll-proportion="0.31350482">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/caching/CachingBlogModelService.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogPost.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="19" column="47" selection-start="585" selection-end="585" vertical-scroll-proportion="0.2578125">
+        <state line="7" column="17" selection-start="168" selection-end="168" vertical-scroll-proportion="0.1688103">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/etc/META-INF/jboss-service.xml">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/PostEdit.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="76" column="73" selection-start="4033" selection-end="4033" vertical-scroll-proportion="1.0176">
+        <state line="16" column="13" selection-start="520" selection-end="520" vertical-scroll-proportion="-4.822076">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="304" column="16" selection-start="10882" selection-end="10882" vertical-scroll-proportion="1.1136">
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
+        <state line="12" column="13" selection-start="273" selection-end="273" vertical-scroll-proportion="0.19292605">
+          <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.hbm.xml">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogPost.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="7" column="32" selection-start="310" selection-end="310" vertical-scroll-proportion="0.1640625">
+        <state line="13" column="46" selection-start="425" selection-end="425" vertical-scroll-proportion="0.31350482">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/etc/conf/hibernate/hibernate.cfg.xml">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogPost.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="37" column="29" selection-start="1755" selection-end="1755" vertical-scroll-proportion="0.888">
+        <state line="22" column="51" selection-start="529" selection-end="529" vertical-scroll-proportion="0.50643086">
           <folding />
         </state>
       </provider>




More information about the jboss-cvs-commits mailing list