[jboss-cvs] JBossBlog SVN: r18 - in trunk: . blog-core blog-core/src/etc/META-INF blog-core/src/java/org/jboss/blog 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/store blog-core/src/java/org/jboss/blog/service/store/hibernate blog-core/src/java/org/jboss/blog/service/store/model blog-core/src/java/org/jboss/blog/tools blog-core/src/java/org/jboss/blog/ui lib lib/hibernate lib/xdoclet

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 3 16:32:32 EST 2006


Author: adamw
Date: 2006-11-03 16:31:39 -0500 (Fri, 03 Nov 2006)
New Revision: 18

Added:
   trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogModel.java
   trunk/blog-core/src/java/org/jboss/blog/model/BlogModelDoesNotExistException.java
   trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogModelImpl.java
   trunk/blog-core/src/java/org/jboss/blog/model/impl/DoesNotExistBlogPost.java
   trunk/blog-core/src/java/org/jboss/blog/service/model/DelegatingModelService.java
   trunk/blog-core/src/java/org/jboss/blog/service/model/StoreModelService.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.hbm.xml
   trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.hbm.xml
   trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/model/
   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/lib/hibernate/
   trunk/lib/hibernate/hibernate3.jar
   trunk/lib/xdoclet/xdoclet-hibernate-module-1.2.3.jar
   trunk/lib/xdoclet/xdoclet-xdoclet-module-1.2.3.jar
Removed:
   trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java
   trunk/blog-core/src/java/org/jboss/blog/model/BlogCategoryDoesNotExistException.java
   trunk/blog-core/src/java/org/jboss/blog/model/DoesNotExistBlogPost.java
   trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/BlogManager.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/PostManager.java
Modified:
   trunk/blog-core/build.xml
   trunk/blog-core/src/etc/META-INF/jboss-service.xml
   trunk/blog-core/src/java/org/jboss/blog/BlogName.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/service/model/BlogModelService.java
   trunk/blog-core/src/java/org/jboss/blog/service/model/CachingBlogModelService.java
   trunk/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java
   trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java
   trunk/blog-core/src/java/org/jboss/blog/tools/BlogTools.java
   trunk/blog-core/src/java/org/jboss/blog/ui/CurrentView.java
   trunk/jbossblog.iws
Log:
http://jira.jboss.com/jira/browse/JBBLOG-8

Modified: trunk/blog-core/build.xml
===================================================================
--- trunk/blog-core/build.xml	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/build.xml	2006-11-03 21:31:39 UTC (rev 18)
@@ -94,11 +94,6 @@
             <fileset dir="${src.java}"><include name="**/*.java"/></fileset>
             <jbossxmbean />
         </jmxdoclet>
-        <!-- Creating hibernate mapping files -->
-        <hibernatedoclet destdir="${build}">
-            <fileset dir="${src.java}"><include name="**/*.java"/></fileset>
-            <hibernate version="3.0"/>
-        </hibernatedoclet>
     </target>
 
     <target name="dist" depends="build">

Modified: trunk/blog-core/src/etc/META-INF/jboss-service.xml
===================================================================
--- trunk/blog-core/src/etc/META-INF/jboss-service.xml	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/etc/META-INF/jboss-service.xml	2006-11-03 21:31:39 UTC (rev 18)
@@ -47,8 +47,25 @@
            xmbean-dd="org/jboss/blog/service/model/CachingBlogModelService.xml">
         <depends
                 optional-attribute-name="DelegateModelService"
+                proxy-type="attribute">blog:service=DelegatingModel</depends>
+    </mbean>
+    <mbean code="org.jboss.blog.service.model.DelegatingModelService"
+           name="blog:service=DelegatingModel"
+           xmbean-dd="org/jboss/blog/service/model/DelegatingModelService.xml">
+        <depends
+                optional-attribute-name="ExternalDelegateModelService"
                 proxy-type="attribute">blog:service=RomeParsingModel</depends>
+        <depends
+                optional-attribute-name="ExternalDelegateModelService"
+                proxy-type="attribute">blog:service=StoreModel</depends>
     </mbean>
+    <mbean code="org.jboss.blog.service.model.StoreModelService"
+           name="blog:service=StoreModel"
+           xmbean-dd="org/jboss/blog/service/model/StoreModelService.xml">
+        <depends
+                optional-attribute-name="StoreService"
+                proxy-type="attribute">blog:service=Store</depends>
+    </mbean>
     <mbean code="org.jboss.blog.service.model.RomeParsingBlogModelService"
            name="blog:service=RomeParsingModel"
            xmbean-dd="org/jboss/blog/service/model/RomeParsingBlogModelService.xml">

Modified: trunk/blog-core/src/java/org/jboss/blog/BlogName.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/BlogName.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/BlogName.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -23,10 +23,18 @@
         return id;
     }
 
+    public void setId(String id) {
+        this.id = id;
+    }
+
     public String getCategory() {
         return category;
     }
 
+    public void setCategory(String category) {
+        this.category = category;
+    }
+
     public int hashCode() {
         return (id == null ? 0 : id.hashCode()) +
                 (category == null ? 0 : category.hashCode());

Deleted: trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,163 +0,0 @@
-package org.jboss.blog.model;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Iterator;
-
-/**
- * A class representing a blog, that is, a collection of blog posts, together
- * with basic blog information.
- * @author Adam Warski (adamw at aster.pl)
- * @hibernate.class table="BLOG_CATEGORIES"
- */
-public class AbstractBlogCategory {
-    private Integer id;
-    private AbstractBlogCategory parentCategory;
-    private String author;
-    private String title;
-    private String description;
-    private String link;
-    private String categoryName;
-    private String fullCategoryName;
-    private Date created;
-    private List posts;
-
-    public AbstractBlogCategory() {
-
-    }
-
-    public AbstractBlogCategory(String author, String title, String description,
-                     String link, Date created, List entries,
-                     String fullCategoryName) {
-        this.author = author;
-        this.title = title;
-        this.description = description;
-        this.link = link;
-        this.created = created;
-        this.posts = entries;
-        this.fullCategoryName = fullCategoryName;
-    }
-
-    public int getEntryIndex(String guid)
-            throws BlogPostDoesNotExistException {
-        int i = 0;
-        for (Iterator iter = getPosts().iterator(); iter.hasNext();) {
-            if (((BlogPost) iter.next()).getGuid().equals(guid)) {
-                return i;
-            }
-
-            i++;
-        }
-
-        throw new BlogPostDoesNotExistException(guid);
-    }
-
-    public BlogPost getEntry(String guid)
-            throws BlogPostDoesNotExistException {
-        return (BlogPost) getPosts().get(getEntryIndex(guid));
-    }
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public AbstractBlogCategory getParentCategory() {
-        return parentCategory;
-    }
-
-    public void setParentCategory(AbstractBlogCategory parentCategory) {
-        this.parentCategory = parentCategory;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public String getAuthor() {
-        return author;
-    }
-
-    public void setAuthor(String author) {
-        this.author = author;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public String getTitle() {
-        return title;
-    }
-
-    public void setTitle(String title) {
-        this.title = title;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public String getLink() {
-        return link;
-    }
-
-    public void setLink(String link) {
-        this.link = link;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public String getCategoryName() {
-        return categoryName;
-    }
-
-    public void setCategoryName(String categoryName) {
-        this.categoryName = categoryName;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public String getFullCategoryName() {
-        return fullCategoryName;
-    }
-
-    public void setFullCategoryName(String fullCategoryName) {
-        this.fullCategoryName = fullCategoryName;
-    }
-
-    /**
-     * ???
-     */
-    public Date getCreated() {
-        return created;
-    }
-
-    public void setCreated(Date created) {
-        this.created = created;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public List getPosts() {
-        return posts;
-    }
-
-    public void setPosts(List posts) {
-        this.posts = posts;
-    }
-}

Copied: trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogModel.java (from rev 16, trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java)
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java	2006-11-02 14:53:30 UTC (rev 16)
+++ trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogModel.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -0,0 +1,22 @@
+package org.jboss.blog.model;
+
+import java.util.Iterator;
+
+/**
+ * A base class for {@link BlogModel} implementations.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public abstract class AbstractBlogModel implements BlogModel {
+    public BlogPost getPost(String guid)
+            throws BlogPostDoesNotExistException {
+        for (Iterator iter = getPosts().iterator(); iter.hasNext();) {
+            BlogPost post = (BlogPost) iter.next();
+            if (post.getGuid().equals(guid)) {
+                return post;
+            }
+        }
+
+        throw new BlogPostDoesNotExistException(guid);
+    }
+
+}

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-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/model/AbstractBlogPost.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -6,7 +6,8 @@
 import java.text.DateFormat;
 
 /**
- * A base class, handling title-as-id and date methods. Not thread safe.
+ * 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 {
@@ -46,4 +47,9 @@
 
         return createdTime;
     }
+
+    public int compareTo(Object o) {
+        BlogPost post = (BlogPost) o;
+        return post.getCreated().compareTo(getCreated());
+    }
 }

Deleted: trunk/blog-core/src/java/org/jboss/blog/model/BlogCategoryDoesNotExistException.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/BlogCategoryDoesNotExistException.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/model/BlogCategoryDoesNotExistException.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,22 +0,0 @@
-package org.jboss.blog.model;
-
-/**
- * An exception thrown when a blog model is requested, which does not exist.
- * @author Adam Warski (adamw at aster.pl)
- */
-public class BlogCategoryDoesNotExistException extends Exception {
-    public BlogCategoryDoesNotExistException() {
-    }
-
-    public BlogCategoryDoesNotExistException(String message) {
-        super(message);
-    }
-
-    public BlogCategoryDoesNotExistException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-    public BlogCategoryDoesNotExistException(Throwable cause) {
-        super(cause);
-    }
-}

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-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/model/BlogModel.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,11 +1,11 @@
 package org.jboss.blog.model;
 
 import java.util.Date;
+import java.util.Set;
 import java.util.List;
-import java.util.Iterator;
 
 /**
- * An interface representing a blog category, that is, a collection of blog
+ * An interface representing a blog model, that is, a collection of blog
  * posts, together with basic blog information.
  * @author Adam Warski (adamw at aster.pl)
  */
@@ -15,12 +15,19 @@
     public String getDescription();
     public String getLink();
     public Date getCreated();
+
+    /**
+     *
+     * @return Sorted set of {@link BlogPost} - posts for this blog model.
+     */
     public List getPosts();
 
     /**
      *
-     * @return List of {@link java.lang.String} - name of categories to
-     * which this  belongs.
+     * @return Set of {@link java.lang.String} - name of categories to
+     * which this model belongs.
      */
-    public List getCategories();
+    public Set getCategories();
+
+    public BlogPost getPost(String guid) throws BlogPostDoesNotExistException;
 }

Copied: trunk/blog-core/src/java/org/jboss/blog/model/BlogModelDoesNotExistException.java (from rev 16, trunk/blog-core/src/java/org/jboss/blog/model/BlogCategoryDoesNotExistException.java)
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/BlogCategoryDoesNotExistException.java	2006-11-02 14:53:30 UTC (rev 16)
+++ trunk/blog-core/src/java/org/jboss/blog/model/BlogModelDoesNotExistException.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -0,0 +1,22 @@
+package org.jboss.blog.model;
+
+/**
+ * An exception thrown when a blog model is requested, which does not exist.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class BlogModelDoesNotExistException extends Exception {
+    public BlogModelDoesNotExistException() {
+    }
+
+    public BlogModelDoesNotExistException(String message) {
+        super(message);
+    }
+
+    public BlogModelDoesNotExistException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public BlogModelDoesNotExistException(Throwable cause) {
+        super(cause);
+    }
+}

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-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/model/BlogPost.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,17 +1,13 @@
 package org.jboss.blog.model;
 
-import org.jboss.blog.tools.BlogTools;
-
 import java.util.Date;
-import java.util.Locale;
-import java.util.List;
-import java.text.DateFormat;
+import java.util.Set;
 
 /**
  * An interface representing a single blog post.
  * @author Adam Warski (adamw at aster.pl)
  */
-public interface BlogPost {
+public interface BlogPost extends Comparable {
     public String getAuthor();
     public String getTitle();
     public String getTitleAsId();
@@ -31,8 +27,8 @@
 
     /**
      *
-     * @return List of {@link java.lang.String} - name of categories to
+     * @return Set of {@link java.lang.String} - name of categories to
      * which this post belongs.
      */
-    public List getCategories();
+    public Set getCategories();
 }

Deleted: trunk/blog-core/src/java/org/jboss/blog/model/DoesNotExistBlogPost.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/DoesNotExistBlogPost.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/model/DoesNotExistBlogPost.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,12 +0,0 @@
-package org.jboss.blog.model;
-
-import java.util.Date;
-
-/**
- * @author Adam Warski (adamw at aster.pl)
- */
-public class DoesNotExistBlogPost extends BlogPost {
-    public DoesNotExistBlogPost(String author, String title) {
-        super(author, title, "", new Date(), null, null, null);
-    }
-}

Deleted: trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,166 +0,0 @@
-package org.jboss.blog.model.impl;
-
-import org.jboss.blog.model.BlogPostDoesNotExistException;
-import org.jboss.blog.model.BlogPost;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Iterator;
-
-/**
- * A class representing a blog, that is, a collection of blog posts, together
- * with basic blog information.
- * @author Adam Warski (adamw at aster.pl)
- * @hibernate.class table="BLOG_CATEGORIES"
- */
-public class BlogCategoryImpl {
-    private Integer id;
-    private BlogCategoryImpl parentCategory;
-    private String author;
-    private String title;
-    private String description;
-    private String link;
-    private String categoryName;
-    private String fullCategoryName;
-    private Date created;
-    private List posts;
-
-    public BlogCategoryImpl() {
-
-    }
-
-    public BlogCategoryImpl(String author, String title, String description,
-                     String link, Date created, List entries,
-                     String fullCategoryName) {
-        this.author = author;
-        this.title = title;
-        this.description = description;
-        this.link = link;
-        this.created = created;
-        this.posts = entries;
-        this.fullCategoryName = fullCategoryName;
-    }
-
-    public int getEntryIndex(String guid)
-            throws BlogPostDoesNotExistException {
-        int i = 0;
-        for (Iterator iter = getPosts().iterator(); iter.hasNext();) {
-            if (((BlogPost) iter.next()).getGuid().equals(guid)) {
-                return i;
-            }
-
-            i++;
-        }
-
-        throw new BlogPostDoesNotExistException(guid);
-    }
-
-    public BlogPost getEntry(String guid)
-            throws BlogPostDoesNotExistException {
-        return (BlogPost) getPosts().get(getEntryIndex(guid));
-    }
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public BlogCategoryImpl getParentCategory() {
-        return parentCategory;
-    }
-
-    public void setParentCategory(BlogCategoryImpl parentCategory) {
-        this.parentCategory = parentCategory;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public String getAuthor() {
-        return author;
-    }
-
-    public void setAuthor(String author) {
-        this.author = author;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public String getTitle() {
-        return title;
-    }
-
-    public void setTitle(String title) {
-        this.title = title;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public String getLink() {
-        return link;
-    }
-
-    public void setLink(String link) {
-        this.link = link;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public String getCategoryName() {
-        return categoryName;
-    }
-
-    public void setCategoryName(String categoryName) {
-        this.categoryName = categoryName;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public String getFullCategoryName() {
-        return fullCategoryName;
-    }
-
-    public void setFullCategoryName(String fullCategoryName) {
-        this.fullCategoryName = fullCategoryName;
-    }
-
-    /**
-     * ???
-     */
-    public Date getCreated() {
-        return created;
-    }
-
-    public void setCreated(Date created) {
-        this.created = created;
-    }
-
-    /**
-     * @hibernate.property
-     */
-    public List getPosts() {
-        return posts;
-    }
-
-    public void setPosts(List posts) {
-        this.posts = posts;
-    }
-}

Copied: trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogModelImpl.java (from rev 16, trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java)
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java	2006-11-02 14:53:30 UTC (rev 16)
+++ trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogModelImpl.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -0,0 +1,61 @@
+package org.jboss.blog.model.impl;
+
+import org.jboss.blog.model.AbstractBlogModel;
+
+import java.util.Date;
+import java.util.Set;
+import java.util.List;
+
+/**
+ * A simple java-bean implementation of the model interface.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class BlogModelImpl extends AbstractBlogModel {
+    private String author;
+    private String title;
+    private String description;
+    private String link;
+    private Date created;
+    private List posts;
+    private Set categories;
+
+    public BlogModelImpl(String author, String title, String description,
+                         String link, Date created, List posts,
+                         Set categories) {
+        this.author = author;
+        this.title = title;
+        this.description = description;
+        this.link = link;
+        this.created = created;
+        this.posts = posts;
+        this.categories = categories;
+    }
+
+    public String getAuthor() {
+        return author;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public String getLink() {
+        return link;
+    }
+
+    public Date getCreated() {
+        return created;
+    }
+
+    public List getPosts() {
+        return posts;
+    }
+
+    public Set getCategories() {
+        return categories;
+    }
+}

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-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -4,6 +4,7 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
 
 /**
  * A simple java-bean implementation of the post interface.
@@ -16,12 +17,12 @@
     private Date created;
     private String link;
     private String guid;
-    private List categories;
+    private Set categories;
     private String commentLink;
 
     public BlogPostImpl(String author, String title, String description,
                         Date created, String link, String guid,
-                        List categories, String commentLink) {
+                        Set categories, String commentLink) {
         this.author = author;
         this.title = title;
         this.description = description;
@@ -56,7 +57,7 @@
         return guid;
     }
 
-    public List getCategories() {
+    public Set getCategories() {
         return categories;
     }
 

Copied: trunk/blog-core/src/java/org/jboss/blog/model/impl/DoesNotExistBlogPost.java (from rev 16, trunk/blog-core/src/java/org/jboss/blog/model/DoesNotExistBlogPost.java)
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/model/DoesNotExistBlogPost.java	2006-11-02 14:53:30 UTC (rev 16)
+++ trunk/blog-core/src/java/org/jboss/blog/model/impl/DoesNotExistBlogPost.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -0,0 +1,13 @@
+package org.jboss.blog.model.impl;
+
+import java.util.Date;
+import java.util.HashSet;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class DoesNotExistBlogPost extends BlogPostImpl {
+    public DoesNotExistBlogPost(String author, String title) {
+        super(author, title, "", new Date(), null, null, new HashSet(), null);
+    }
+}

Modified: trunk/blog-core/src/java/org/jboss/blog/service/model/BlogModelService.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/model/BlogModelService.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/model/BlogModelService.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -2,10 +2,10 @@
 
 import org.jboss.blog.BlogName;
 import org.jboss.blog.model.BlogModel;
-import org.jboss.blog.model.BlogCategoryDoesNotExistException;
+import org.jboss.blog.model.BlogModelDoesNotExistException;
 
 /**
- * A service which enables to obtain a blog category (parsed blog information and
+ * A service which enables to obtain a blog model (parsed blog information and
  * entries), having a blog name.
  * @author Adam Warski (adamw at aster.pl)
  */
@@ -15,8 +15,8 @@
      * category.
      * @param name Name of the blog for which the model should be read.
      * @return A category of a blog with the given name.
-     * @throws org.jboss.blog.model.BlogCategoryDoesNotExistException If a blog
+     * @throws org.jboss.blog.model.BlogModelDoesNotExistException If a blog
      * with the given name couldn't be found.
      */
-    public BlogModel getBlogCategory(BlogName name) throws BlogCategoryDoesNotExistException;
+    public BlogModel getBlogModel(BlogName name) throws BlogModelDoesNotExistException;
 }

Modified: trunk/blog-core/src/java/org/jboss/blog/service/model/CachingBlogModelService.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/model/CachingBlogModelService.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/model/CachingBlogModelService.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,13 +1,13 @@
 package org.jboss.blog.service.model;
 
 import org.jboss.blog.model.BlogModel;
-import org.jboss.blog.model.BlogCategoryDoesNotExistException;
+import org.jboss.blog.model.BlogModelDoesNotExistException;
 import org.jboss.blog.BlogName;
 import org.jboss.blog.service.AbstractBlogService;
 
 /**
- * A blog category service which caches categories returned by another blog
- * model category service to avoid, for example, unnecessary feed parsing.
+ * A blog model service which caches models returned by another blog
+ * model model service to avoid, for example, unnecessary feed parsing.
  * @author Adam Warski (adamw at aster.pl)
  *
  * @jmx.mbean
@@ -22,23 +22,25 @@
      * @jmx.managed-operation
      * @jmx.managed-parameter type="org.jboss.blog.BlogName"
      */
-    public BlogModel getBlogCategory(BlogName name) throws BlogCategoryDoesNotExistException {
-        return delegateModelService.getBlogCategory(name);
+    public BlogModel getBlogModel(BlogName name) throws BlogModelDoesNotExistException {
+        return delegateModelService.getBlogModel(name);
     }
 
     private BlogModelService delegateModelService;
 
     /**
      * @jmx.managed-attribute
+     * @return The delegate model service.
      */
-    public BlogModelService getDelegateCategoryService() {
+    public BlogModelService getDelegateModelService() {
         return delegateModelService;
     }
 
     /**
      * @jmx.managed-attribute
+     * @param delegateModelService New delegate model service.
      */
-    public void setDelegateCategoryService(BlogModelService delegateModelService) {
+    public void setDelegateModelService(BlogModelService delegateModelService) {
         this.delegateModelService = delegateModelService;
     }
 }

Added: trunk/blog-core/src/java/org/jboss/blog/service/model/DelegatingModelService.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/model/DelegatingModelService.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/model/DelegatingModelService.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -0,0 +1,65 @@
+package org.jboss.blog.service.model;
+
+import org.jboss.blog.model.BlogModel;
+import org.jboss.blog.model.BlogModelDoesNotExistException;
+import org.jboss.blog.BlogName;
+import org.jboss.blog.tools.BlogTools;
+import org.jboss.blog.service.AbstractBlogService;
+
+/**
+ * A blog model service which delegates the task to one of two model services,
+ * depending on the blog name: it can be an URL to an external blog or an
+ * internal blog id and category.
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ *
+ * @jmx.mbean
+ * @jboss.xmbean
+ */
+public class DelegatingModelService extends AbstractBlogService implements BlogModelService {
+    /**
+     * @jmx.managed-operation
+     * @jmx.managed-parameter type="org.jboss.blog.BlogName"
+     */
+    public BlogModel getBlogModel(BlogName name) throws BlogModelDoesNotExistException {
+        if (BlogTools.isExternalLink(name.getId())) {
+            return externalDelegateModelService.getBlogModel(name);
+        }
+
+        return internalDelegateModelService.getBlogModel(name);
+    }
+
+    private BlogModelService externalDelegateModelService;
+    private BlogModelService internalDelegateModelService;
+
+    /**
+     * @jmx.managed-attribute
+     * @return The external delegate model service.
+     */
+    public BlogModelService getExternalDelegateModelService() {
+        return externalDelegateModelService;
+    }
+
+    /**
+     * @jmx.managed-attribute
+     * @param externalDelegateModelService New external delegate model service.
+     */
+    public void setExternalDelegateModelService(BlogModelService externalDelegateModelService) {
+        this.externalDelegateModelService = externalDelegateModelService;
+    }
+
+    /**
+     * @jmx.managed-attribute
+     * @return The internal delegate model service.
+     */
+    public BlogModelService getInternalDelegateModelService() {
+        return internalDelegateModelService;
+    }
+
+    /**
+     * @jmx.managed-attribute
+     * @param internalDelegateModelService New internal delegate model service.
+     */
+    public void setInternalDelegateModelService(BlogModelService internalDelegateModelService) {
+        this.internalDelegateModelService = internalDelegateModelService;
+    }
+}

Modified: 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-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,16 +1,15 @@
 package org.jboss.blog.service.model;
 
 import org.jboss.blog.model.BlogModel;
-import org.jboss.blog.model.BlogCategoryDoesNotExistException;
-import org.jboss.blog.model.BlogPost;
+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.List;
-import java.util.ArrayList;
-import java.util.Iterator;
+import java.util.*;
 import java.net.URL;
 import java.io.IOException;
 
@@ -19,6 +18,7 @@
 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)
@@ -31,13 +31,26 @@
 
     }
 
+    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 getBlogCategory(BlogName name) throws BlogCategoryDoesNotExistException {
+    public BlogModel getBlogModel(BlogName name) throws BlogModelDoesNotExistException {
         if (name.getId() == null) {
-            throw new BlogCategoryDoesNotExistException("No blog selected (null blog id)");
+            throw new BlogModelDoesNotExistException("No blog selected (null blog id)");
         }
 
         // Parsing the feed, which's address is the id of the selected blog.
@@ -46,19 +59,19 @@
         try {
             inFeed = input.build(new XmlReader(new URL(name.getId()).openStream()));
         } catch (IOException e) {
-            throw new BlogCategoryDoesNotExistException(e);
+            throw new BlogModelDoesNotExistException(e);
         } catch (FeedException e) {
-            throw new BlogCategoryDoesNotExistException(e);
+            throw new BlogModelDoesNotExistException(e);
         }
         
-        List entries = new ArrayList();
+        List posts = new ArrayList();
 
         String defaultAuthor = inFeed.getAuthor();
         for (Iterator iter = inFeed.getEntries().iterator(); iter.hasNext();) {
-            SyndEntry entry = (SyndEntry) iter.next();
+            SyndEntry post = (SyndEntry) iter.next();
 
             CommentRssModule commRssModule = (CommentRssModule)
-                    entry.getModule("http://wellformedweb.org/CommentAPI/");
+                    post.getModule("http://wellformedweb.org/CommentAPI/");
             String commentsRss = null;
             if (commRssModule != null) {
                 commentsRss = commRssModule.getCommentRss();
@@ -67,17 +80,18 @@
                 }
             }
 
-            String author = entry.getAuthor();
-            entries.add(new BlogPost(
+            String author = post.getAuthor();
+            posts.add(new BlogPostImpl(
                     BlogTools.isEmpty(author) ? defaultAuthor : author,
-                    entry.getTitle(), entry.getDescription().getValue(),
-                    entry.getPublishedDate(), entry.getLink(),
-                    entry.getUri(), commentsRss));
+                    post.getTitle(), post.getDescription().getValue(),
+                    post.getPublishedDate(), post.getLink(),
+                    post.getUri(), getStringCategories(post.getCategories()),
+                    commentsRss));
         }
 
-        return new BlogModel(inFeed.getAuthor(), inFeed.getTitle(),
+        return new BlogModelImpl(inFeed.getAuthor(), inFeed.getTitle(),
                 inFeed.getDescription(), inFeed.getLink(),
-                inFeed.getPublishedDate(), entries,
-                inFeed.getCategories().size() != 1 ? "" : inFeed.getCategories().get(0).toString());
+                inFeed.getPublishedDate(), posts,
+                getStringCategories(inFeed.getCategories()));
     }
 }

Added: trunk/blog-core/src/java/org/jboss/blog/service/model/StoreModelService.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/model/StoreModelService.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/model/StoreModelService.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -0,0 +1,43 @@
+package org.jboss.blog.service.model;
+
+import org.jboss.blog.service.AbstractBlogService;
+import org.jboss.blog.service.store.BlogStoreService;
+import org.jboss.blog.model.BlogModel;
+import org.jboss.blog.model.BlogModelDoesNotExistException;
+import org.jboss.blog.BlogName;
+
+/**
+ * A blog model service which reads the blog model from the specified blog
+ * store.
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ *
+ * @jmx.mbean
+ * @jboss.xmbean
+ */
+public class StoreModelService extends AbstractBlogService implements BlogModelService {
+    /**
+     * @jmx.managed-operation
+     * @jmx.managed-parameter type="org.jboss.blog.BlogName"
+     */
+    public BlogModel getBlogModel(BlogName name) throws BlogModelDoesNotExistException {
+        return storeService.getBlogModel(name);
+    }
+
+    private BlogStoreService storeService;
+
+    /**
+     * @jmx.managed-attribute
+     * @return The currently held blog store service.
+     */
+    public BlogStoreService getStoreService() {
+        return storeService;
+    }
+
+    /**
+     * @jmx.managed-attribute
+     * @param storeService New blog store service.
+     */
+    public void setStoreService(BlogStoreService storeService) {
+        this.storeService = storeService;
+    }
+}

Deleted: trunk/blog-core/src/java/org/jboss/blog/service/store/BlogManager.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/BlogManager.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/BlogManager.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,31 +0,0 @@
-package org.jboss.blog.service.store;
-
-import org.jboss.blog.model.BlogInformation;
-import org.jboss.blog.BlogName;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public interface BlogManager {
-    /**
-     * Loads blog information for a specific blog.
-     * @param blogName Name of the blog for which to read the information.
-     * @return Information about the specified blog.
-     */
-    public BlogInformation getBlogInformation(BlogName blogName);
-
-    /**
-     * Sets blog information for a specific blog.
-     * @param blogName Name of the blog for which to set the information.
-     * @param info New blog information to persist.
-     */
-    public void setBlogInformation(BlogName blogName, BlogInformation info);
-
-    public void addCategory(BlogName blogName);
-
-    public void deleteCategory(BlogName blogName);
-
-    public void addPost();
-
-    public void deletePost();
-}

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-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/BlogStoreService.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,6 +1,7 @@
 package org.jboss.blog.service.store;
 
 import org.jboss.blog.BlogName;
+import org.jboss.blog.service.store.model.ModifiableBlogModel;
 
 import java.util.List;
 
@@ -26,10 +27,9 @@
     public List getAllCategories(BlogName blogName);
 
     /**
-     * Gets a blog manager for the specified blog (that is, blog id and
-     * category combination).
-     * @param blogName Name of blog for which to get the manager.
-     * @return A manager for the specified blog.
+     * Gets a blog model for the specified blog.
+     * @param blogName Name of blog for which to get the model.
+     * @return A model for the specified blog.
      */
-    public BlogManager getBlogManager(BlogName blogName);
+    public ModifiableBlogModel getBlogModel(BlogName blogName);
 }

Deleted: trunk/blog-core/src/java/org/jboss/blog/service/store/PostManager.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/PostManager.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/PostManager.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,7 +0,0 @@
-package org.jboss.blog.service.store;
-
-/**
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- */
-public interface PostManager {
-}

Added: trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.hbm.xml
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.hbm.xml	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.hbm.xml	2006-11-03 21:31:39 UTC (rev 18)
@@ -0,0 +1,38 @@
+<?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="HibernateBlogModel"
+            table="BLOG_MODELS">
+        <id name="id" column="BLOG_ID">
+            <generator class="native" />
+        </id>
+
+        <natural-id mutable="true">
+            <component name="blogName" class="org.jboss.blog.BlogName">
+                <property name="id" />
+                <property name="categorty" />
+            </component>
+        </natural-id>
+
+        <property name="author" not-null="true" />
+
+        <property name="created" column="CREATED" not-null="true" type="time"
+                  update="false" />
+
+        <property name="title" not-null="true" />
+
+        <property name="link" />
+
+        <property name="description" />
+
+        <bag name="posts" table="BLOG_MODELS_POSTS" order-by="CREATED desc"
+             cascade="all-delete-orphan">
+            <key column="BLOG_ID" not-null="true" />
+            <many-to-many class="HibernateBlogPost" />
+        </bag>
+    </class>
+</hibernate-mapping>
\ No newline at end of file

Added: trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -0,0 +1,114 @@
+package org.jboss.blog.service.store.hibernate;
+
+import org.jboss.blog.service.store.model.ModifiableBlogModel;
+import org.jboss.blog.model.AbstractBlogModel;
+import org.jboss.blog.BlogName;
+
+import java.util.*;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class HibernateBlogModel extends AbstractBlogModel implements ModifiableBlogModel {
+    private Integer id;
+    private BlogName blogName;
+    private String author;
+    private String title;
+    private String description;
+    private String link;
+    private Date created;
+
+    private List posts;
+
+    public HibernateBlogModel() {
+        
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public BlogName getBlogName() {
+        return blogName;
+    }
+
+    public void setBlogName(BlogName blogName) {
+        this.blogName = blogName;
+    }
+
+    public String getAuthor() {
+        return author;
+    }
+
+    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 String getLink() {
+        return link;
+    }
+
+    public void setLink(String link) {
+        this.link = link;
+    }
+
+    public Date getCreated() {
+        return created;
+    }
+
+    public void setCreated(Date created) {
+        this.created = created;
+    }
+
+    public List getPosts() {
+        return posts;
+    }
+
+    public void setPosts(List posts) {
+        this.posts = posts;
+    }
+
+    public void setCategories(Set categories) {
+        if ((categories != null) && (categories.size() > 1)) {
+            throw new IllegalArgumentException("Only one categorty per model is supported");
+        }
+
+        if ((categories == null) || (categories.size() == 0)) {
+            getBlogName().setCategory(null);
+            return;
+        }
+
+        getBlogName().setCategory((String) categories.iterator().next());
+    }
+
+    public Set getCategories() {
+        String category = getBlogName().getCategory();
+        if (category == null) {
+            return null;
+        }
+
+        Set ret = new HashSet();
+        ret.add(category);
+        return ret;
+    }
+}

Added: trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.hbm.xml
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.hbm.xml	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.hbm.xml	2006-11-03 21:31:39 UTC (rev 18)
@@ -0,0 +1,33 @@
+<?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="HibernateBlogPost"
+            table="BLOG_POSTS">
+        <id name="id">
+            <generator class="native" />
+        </id>
+
+        <property name="author" not-null="true" />
+
+        <property name="created" not-null="true" type="time" update="false" />
+
+        <property name="title" not-null="true" />
+
+        <property name="guid" not-null="true" />
+
+        <property name="link" />
+
+        <property name="commentLink" />
+
+        <property name="description" />
+
+        <set name="categories" table="BLOG_POST_CATEGORIES">
+            <key column="id" not-null="true" />
+            <element type="string" />
+        </set>
+    </class>
+</hibernate-mapping>
\ No newline at end of file

Added: trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -0,0 +1,99 @@
+package org.jboss.blog.service.store.hibernate;
+
+import org.jboss.blog.service.store.model.ModifiableBlogPost;
+import org.jboss.blog.model.AbstractBlogPost;
+
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class HibernateBlogPost extends AbstractBlogPost implements ModifiableBlogPost {
+    private Integer id;
+    private String author;
+    private String title;
+    private String description;
+    private String link;
+    private String guid;
+    private String commentLink;
+    private Date created;
+    
+    private Set categories;
+
+    public HibernateBlogPost() {
+
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getAuthor() {
+        return author;
+    }
+
+    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 String getLink() {
+        return link;
+    }
+
+    public void setLink(String link) {
+        this.link = link;
+    }
+
+    public String getGuid() {
+        return guid;
+    }
+
+    public void setGuid(String guid) {
+        this.guid = guid;
+    }
+
+    public String getCommentLink() {
+        return commentLink;
+    }
+
+    public void setCommentLink(String commentLink) {
+        this.commentLink = commentLink;
+    }
+
+    public Date getCreated() {
+        return created;
+    }
+
+    public void setCreated(Date created) {
+        this.created = created;
+    }
+
+    public Set getCategories() {
+        return categories;
+    }
+
+    public void setCategories(Set categories) {
+        this.categories = categories;
+    }
+}

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-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,7 +1,11 @@
 package org.jboss.blog.service.store.hibernate;
 
 import org.jboss.blog.service.store.BlogStoreService;
+import org.jboss.blog.service.store.model.ModifiableBlogModel;
+import org.jboss.blog.BlogName;
 
+import java.util.List;
+
 /**
  * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
  * 
@@ -9,4 +13,15 @@
  * @jboss.xmbean
  */
 public class HibernateBlogStoreService implements BlogStoreService {
+    public List getAllBlogs() {
+        return null;
+    }
+
+    public List getAllCategories(BlogName blogName) {
+        return null;
+    }
+
+    public ModifiableBlogModel getBlogModel(BlogName blogName) {
+        return null;
+    }
 }

Added: 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-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogModel.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -0,0 +1,20 @@
+package org.jboss.blog.service.store.model;
+
+import org.jboss.blog.model.BlogModel;
+
+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 void setPosts(List posts);
+    public void setCategories(Set categories);
+}

Added: 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-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogPost.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -0,0 +1,20 @@
+package org.jboss.blog.service.store.model;
+
+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 void setGuid(String guid);
+    public void setCommentLink(String commentLink);
+    public void setCategories(Set categories);
+}

Modified: trunk/blog-core/src/java/org/jboss/blog/tools/BlogTools.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/tools/BlogTools.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/tools/BlogTools.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -132,4 +132,19 @@
             return ret;
         }
     }
+
+    /**
+     * Checks if the link is an outside link.
+     * @param link Link to check.
+     * @return True iff the given link is an outside link.
+     */
+    public static boolean isExternalLink(String link) {
+        if (link == null) {
+            return false;
+        }
+
+        link = link.trim();
+        return link.startsWith("http:") || link.startsWith("ftp:")
+                || link.startsWith("https:") || link.startsWith("file:");
+    }
 }

Modified: trunk/blog-core/src/java/org/jboss/blog/ui/CurrentView.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/ui/CurrentView.java	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/blog-core/src/java/org/jboss/blog/ui/CurrentView.java	2006-11-03 21:31:39 UTC (rev 18)
@@ -1,9 +1,9 @@
 package org.jboss.blog.ui;
 
 import org.jboss.blog.model.BlogModel;
-import org.jboss.blog.model.BlogCategoryDoesNotExistException;
+import org.jboss.blog.model.BlogModelDoesNotExistException;
 import org.jboss.blog.model.BlogPost;
-import org.jboss.blog.model.DoesNotExistBlogPost;
+import org.jboss.blog.model.impl.DoesNotExistBlogPost;
 import org.jboss.blog.BlogName;
 import org.jboss.blog.test.HibernateTest;
 import org.jboss.blog.tools.BlogTools;
@@ -70,9 +70,9 @@
     public BlogModel getBlogModel() {
         if (blogModel == null) {
             try {
-                blogModel = BlogTools.getBlogService().getModelService().getBlogCategory(
+                blogModel = BlogTools.getBlogService().getModelService().getBlogModel(
                         getBlogName());
-            } catch (BlogCategoryDoesNotExistException e) {
+            } catch (BlogModelDoesNotExistException e) {
                 throw new RuntimeException(e);
             }
         }

Modified: trunk/jbossblog.iws
===================================================================
--- trunk/jbossblog.iws	2006-11-02 14:57:35 UTC (rev 17)
+++ trunk/jbossblog.iws	2006-11-03 21:31:39 UTC (rev 18)
@@ -17,20 +17,39 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" name="Default" comment="">
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/BlogCategoryService.java" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/category" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java" afterPath="" />
+      <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="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/model" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/tools/BlogTools.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/tools/BlogTools.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/BlogModelImpl.java" />
+      <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="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="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/CachingBlogModelService.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/BlogService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/BlogService.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/BlogServiceImpl.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/BlogServiceImpl.java" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/category/CachingBlogCategoryService.java" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/category/BlogCategoryService.java" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogCategoryService.java" afterPath="" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/BlogModelService.java" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/category/RomeParsingBlogCategoryService.java" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/CachingBlogCategoryService.java" afterPath="" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/BlogModelService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/BlogModelService.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/model/RomeParsingBlogModelService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/DelegatingModelService.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/StoreModelService.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/CurrentView.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/CurrentView.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/CachingBlogModelService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/CachingBlogModelService.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.hbm.xml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.hbm.xml" />
+      <change type="NEW" beforePath="" 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/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/hibernate/HibernateBlogStoreService.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/DoesNotExistBlogPost.java" afterPath="" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogModel.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/build.xml" afterPath="$PROJECT_DIR$/blog-core/build.xml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogModelDoesNotExistException.java" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/BlogManager.java" afterPath="" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/model/ModifiableBlogPost.java" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogCategoryDoesNotExistException.java" afterPath="" />
+      <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="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/PostManager.java" afterPath="" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/DoesNotExistBlogPost.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/BlogName.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/BlogName.java" />
     </list>
   </component>
   <component name="ChangeListSynchronizer" />
@@ -155,38 +174,42 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file leaf-file-name="BlogModel.java" pinned="false" current="true" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogModel.java">
+      <file leaf-file-name="HibernateBlogModel.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="18" column="3" selection-start="490" selection-end="490" vertical-scroll-proportion="0.2843602">
-              <folding />
+            <state line="86" column="29" selection-start="1727" selection-end="1727" vertical-scroll-proportion="0.5096774">
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="BlogPost.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogPost.java">
+      <file leaf-file-name="HibernateBlogModel.hbm.xml" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.hbm.xml">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="31" column="4" selection-start="773" selection-end="928" vertical-scroll-proportion="0.4620853">
+            <state line="33" column="17" selection-start="1097" selection-end="1097" vertical-scroll-proportion="0.7580645">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="AbstractBlogCategory.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java">
+      <file leaf-file-name="HibernateBlogPost.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/HibernateBlogPost.hbm.xml">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="12" column="13" selection-start="320" selection-end="320" vertical-scroll-proportion="0.1421801">
+            <state line="27" column="12" selection-start="767" selection-end="770" vertical-scroll-proportion="0.6532258">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="BlogCategoryImpl.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java">
+      <file leaf-file-name="HibernateBlogPost.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="15" column="13" selection-start="423" selection-end="423" vertical-scroll-proportion="0.1421801">
-              <folding />
+            <state line="21" column="25" selection-start="606" selection-end="606" vertical-scroll-proportion="0.5080645">
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
@@ -643,6 +666,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>
@@ -1064,7 +1129,7 @@
       <showLibraryContents />
       <hideEmptyPackages />
       <abbreviatePackageNames />
-      <showStructure Favorites="false" Scope="false" PackagesPane="false" ProjectPane="false" />
+      <showStructure ProjectPane="false" Scope="false" PackagesPane="false" Favorites="false" />
       <autoscrollToSource />
       <autoscrollFromSource />
       <sortByType />
@@ -1226,15 +1291,15 @@
       <window_info id="CVS" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="13" />
       <window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298969" order="7" />
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.26156694" order="0" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2535472" order="0" />
       <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32914287" order="1" />
       <window_info id="Structure" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24984577" order="7" />
-      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.22742857" order="9" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.22742857" 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" />
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="5" />
-      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2541641" order="1" />
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.26650217" order="1" />
       <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298969" order="11" />
       <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="2" />
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24984577" order="2" />
@@ -1337,125 +1402,125 @@
     <option name="myLastEditedConfigurable" value="Project Default" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/blog-core/src/web/WEB-INF/faces-config.xml">
+    <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="35" column="34" selection-start="1375" selection-end="1375" vertical-scroll-proportion="0.65625">
+        <state line="59" column="14" selection-start="1387" selection-end="1387" vertical-scroll-proportion="0.97748816">
           <folding />
         </state>
       </provider>
-      <provider editor-type-id="com.intellij.jsf.yfilesGraph.editor.FacesNavigationFileEditorProvider">
-        <state />
-      </provider>
-      <provider editor-type-id="com.intellij.jsf.ui.FacesConfigEditorProvider">
-        <state />
-      </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.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="80" column="50" selection-start="2981" selection-end="2981" vertical-scroll-proportion="0.9455206">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <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="57" selection-start="1107" selection-end="1107" vertical-scroll-proportion="0.5864929">
+        <state line="4" column="22" selection-start="106" selection-end="106" vertical-scroll-proportion="0.07109005">
           <folding>
             <element signature="imports" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/BlogManager.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/build.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="14" column="34" selection-start="444" selection-end="444" vertical-scroll-proportion="0.24881516">
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
+        <state line="95" column="20" selection-start="4203" selection-end="4203" vertical-scroll-proportion="0.5247286">
+          <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/test/HibernateTest.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/BlogName.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="21" column="4" selection-start="398" selection-end="436" vertical-scroll-proportion="0.37322274">
+        <state line="24" column="0" selection-start="588" selection-end="588" vertical-scroll-proportion="0.39099526">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogCategory.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="12" column="13" selection-start="320" selection-end="320" vertical-scroll-proportion="0.1421801">
-          <folding />
+        <state line="21" column="25" selection-start="606" selection-end="606" vertical-scroll-proportion="0.5080645">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/BlogCategoryImpl.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/DoesNotExistBlogPost.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="15" column="13" selection-start="423" selection-end="423" vertical-scroll-proportion="0.1421801">
-          <folding />
+        <state line="10" column="8" selection-start="262" selection-end="262" vertical-scroll-proportion="0.24193548">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogPost.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogModel.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="8" column="71" selection-start="201" selection-end="201" vertical-scroll-proportion="0.14527845">
+        <state line="22" column="15" selection-start="568" selection-end="568" vertical-scroll-proportion="0.5322581">
           <folding>
             <element signature="imports" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/BlogPostImpl.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/AbstractBlogModel.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="20" column="0" selection-start="513" selection-end="513" vertical-scroll-proportion="0.3021327">
+        <state line="16" column="25" selection-start="539" selection-end="539" vertical-scroll-proportion="0.38709676">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogPost.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/impl/BlogModelImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="31" column="4" selection-start="773" selection-end="928" vertical-scroll-proportion="0.4620853">
-          <folding />
+        <state line="53" column="15" selection-start="1245" selection-end="1245" vertical-scroll-proportion="1.282258">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </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/service/store/model/ModifiableBlogModel.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="57" column="42" selection-start="2688" selection-end="2688" vertical-scroll-proportion="0.4885404">
-          <folding />
+        <state line="17" column="29" selection-start="521" selection-end="521" vertical-scroll-proportion="0.41129032">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/BlogService.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/model/RomeParsingBlogModelService.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="13" column="17" selection-start="484" selection-end="484" vertical-scroll-proportion="0.15995261">
+        <state line="78" column="56" selection-start="2698" selection-end="2698" vertical-scroll-proportion="0.38016528">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/BlogServiceImpl.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="15" column="13" selection-start="470" selection-end="470" vertical-scroll-proportion="0.26658767">
+        <state line="86" column="29" selection-start="1727" selection-end="1727" vertical-scroll-proportion="0.5096774">
           <folding>
             <element signature="imports" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/AbstractBlogService.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/CurrentView.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="7" column="22" selection-start="149" selection-end="149" vertical-scroll-proportion="0.12711865">
+        <state line="131" column="69" selection-start="3650" selection-end="3650" vertical-scroll-proportion="0.1338843">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/model/BlogModel.java">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogPost.hbm.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="18" column="3" selection-start="490" selection-end="490" vertical-scroll-proportion="0.2843602">
+        <state line="27" column="12" selection-start="767" selection-end="770" vertical-scroll-proportion="0.6532258">
           <folding />
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogModel.hbm.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="33" column="17" selection-start="1097" selection-end="1097" vertical-scroll-proportion="0.7580645">
+          <folding />
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>
 

Added: trunk/lib/hibernate/hibernate3.jar
===================================================================
(Binary files differ)


Property changes on: trunk/lib/hibernate/hibernate3.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/lib/xdoclet/xdoclet-hibernate-module-1.2.3.jar
===================================================================
(Binary files differ)


Property changes on: trunk/lib/xdoclet/xdoclet-hibernate-module-1.2.3.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/lib/xdoclet/xdoclet-xdoclet-module-1.2.3.jar
===================================================================
(Binary files differ)


Property changes on: trunk/lib/xdoclet/xdoclet-xdoclet-module-1.2.3.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream




More information about the jboss-cvs-commits mailing list