[jboss-cvs] JBossBlog SVN: r185 - in trunk: src/action/org/jboss/blog/session/cache and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Feb 4 10:49:11 EST 2008
Author: adamw
Date: 2008-02-04 10:49:11 -0500 (Mon, 04 Feb 2008)
New Revision: 185
Added:
trunk/src/model/org/jboss/blog/model/Image.java
trunk/src/model/org/jboss/blog/model/RestrictedImage.java
trunk/src/test/org/jboss/blog/session/parser/RomeExample2.java
Modified:
trunk/resources/META-INF/persistence-dev.xml
trunk/resources/META-INF/persistence-prod.xml
trunk/src/action/org/jboss/blog/session/cache/CacheManager.java
trunk/src/action/org/jboss/blog/session/merge/MergeServiceBean.java
trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java
trunk/src/model/org/jboss/blog/model/Enclosure.java
trunk/src/model/org/jboss/blog/model/Post.java
trunk/src/model/org/jboss/blog/model/RestrictedPost.java
Log:
Modified: trunk/resources/META-INF/persistence-dev.xml
===================================================================
--- trunk/resources/META-INF/persistence-dev.xml 2008-02-04 13:54:52 UTC (rev 184)
+++ trunk/resources/META-INF/persistence-dev.xml 2008-02-04 15:49:11 UTC (rev 185)
@@ -15,6 +15,7 @@
<class>org.jboss.blog.model.Category</class>
<class>org.jboss.blog.model.Post</class>
<class>org.jboss.blog.model.Enclosure</class>
+ <class>org.jboss.blog.model.Image</class>
<class>org.jboss.blog.model.Template</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
Modified: trunk/resources/META-INF/persistence-prod.xml
===================================================================
--- trunk/resources/META-INF/persistence-prod.xml 2008-02-04 13:54:52 UTC (rev 184)
+++ trunk/resources/META-INF/persistence-prod.xml 2008-02-04 15:49:11 UTC (rev 185)
@@ -15,6 +15,7 @@
<class>org.jboss.blog.model.Category</class>
<class>org.jboss.blog.model.Post</class>
<class>org.jboss.blog.model.Enclosure</class>
+ <class>org.jboss.blog.model.Image</class>
<class>org.jboss.blog.model.Template</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
Modified: trunk/src/action/org/jboss/blog/session/cache/CacheManager.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/cache/CacheManager.java 2008-02-04 13:54:52 UTC (rev 184)
+++ trunk/src/action/org/jboss/blog/session/cache/CacheManager.java 2008-02-04 15:49:11 UTC (rev 185)
@@ -46,6 +46,7 @@
post.getFeed();
post.getCategories();
post.getEnclosures();
+ post.getImages();
}
private void readPosts(List<? extends RestrictedPost> posts) {
Modified: trunk/src/action/org/jboss/blog/session/merge/MergeServiceBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/merge/MergeServiceBean.java 2008-02-04 13:54:52 UTC (rev 184)
+++ trunk/src/action/org/jboss/blog/session/merge/MergeServiceBean.java 2008-02-04 15:49:11 UTC (rev 185)
@@ -4,6 +4,7 @@
import org.jboss.blog.model.Post;
import org.jboss.blog.model.Enclosure;
import org.jboss.blog.model.RestrictedPost;
+import org.jboss.blog.model.Image;
import org.jboss.blog.service.FeedsService;
import org.jboss.blog.tools.GeneralTools;
import org.jboss.blog.tools.StringTools;
@@ -49,6 +50,10 @@
entityManager.persist(enc);
}
+ for (Image image : post.getImages()) {
+ entityManager.persist(image);
+ }
+
entityManager.flush();
Events.instance().raiseEvent("org.jboss.blog.post.added", post.getTitleAsId(), feed.getName());
Modified: trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java 2008-02-04 13:54:52 UTC (rev 184)
+++ trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java 2008-02-04 15:49:11 UTC (rev 185)
@@ -8,11 +8,15 @@
import org.jboss.blog.model.feed.Feed;
import org.jboss.blog.model.Post;
import org.jboss.blog.model.Enclosure;
+import org.jboss.blog.model.Image;
import org.jboss.blog.session.category.CategoryServiceBean;
import org.jboss.blog.tools.StringTools;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
+import org.jdom.Element;
+import org.jdom.Attribute;
+import org.jdom.Content;
import javax.ejb.Remove;
import javax.ejb.Stateless;
@@ -31,6 +35,24 @@
@In
private CategoryServiceBean categoryService;
+ private Image getImageFromForeignMarkup(Post post, List<Element> foreignMarkup) {
+ for (Element element : foreignMarkup) {
+ if ("image".equals(element.getName())) {
+ Attribute href = element.getAttribute("href");
+ if (href != null) {
+ return new Image(post, href.getValue());
+ }
+
+ Content content = element.getContent(0);
+ if (content != null) {
+ return new Image(post, content.getValue());
+ }
+ }
+ }
+
+ return null;
+ }
+
public Feed parse(String link) throws ParserException {
try {
SyndFeedInput input = new SyndFeedInput();
@@ -82,6 +104,14 @@
enclosure.getLength(), enclosure.getType()));
}
+ // Setting images
+ post.setImages(new ArrayList<Image>());
+ //noinspection unchecked
+ Image postImage = getImageFromForeignMarkup(post, (List<Element>) entry.getForeignMarkup());
+ if (postImage != null) {
+ post.getImages().add(postImage);
+ }
+
// Setting the published date
Date publishedDate = entry.getPublishedDate();
if (publishedDate == null) {
Modified: trunk/src/model/org/jboss/blog/model/Enclosure.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Enclosure.java 2008-02-04 13:54:52 UTC (rev 184)
+++ trunk/src/model/org/jboss/blog/model/Enclosure.java 2008-02-04 15:49:11 UTC (rev 185)
@@ -2,6 +2,7 @@
import org.hibernate.validator.NotEmpty;
import org.hibernate.validator.Length;
+import org.hibernate.validator.NotNull;
import javax.persistence.*;
@@ -16,6 +17,7 @@
private Integer id;
@ManyToOne(optional = false, fetch = FetchType.LAZY)
+ @NotNull
private Post post;
@NotEmpty
Added: trunk/src/model/org/jboss/blog/model/Image.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Image.java (rev 0)
+++ trunk/src/model/org/jboss/blog/model/Image.java 2008-02-04 15:49:11 UTC (rev 185)
@@ -0,0 +1,98 @@
+package org.jboss.blog.model;
+
+import org.hibernate.validator.NotEmpty;
+import org.hibernate.validator.Length;
+import org.hibernate.validator.NotNull;
+
+import javax.persistence.*;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Entity
+public class Image implements RestrictedImage {
+ @Id
+ @GeneratedValue
+ @Column(updatable = false)
+ private Integer id;
+
+ @ManyToOne(optional = false, fetch = FetchType.LAZY)
+ @NotNull
+ private Post post;
+
+ @NotEmpty
+ @Length(max = 512)
+ private String url;
+
+ @Length(max = 512)
+ private String title;
+
+ @Length(max = 512)
+ private String link;
+
+ public Image() { }
+
+ public Image(Post post, String url) {
+ this.post = post;
+ this.url = url;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Post getPost() {
+ return post;
+ }
+
+ public void setPost(Post post) {
+ this.post = post;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getLink() {
+ return link;
+ }
+
+ public void setLink(String link) {
+ this.link = link;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof Image)) return false;
+
+ Image image = (Image) o;
+
+ if (id != null ? !id.equals(image.id) : image.id != null) return false;
+ if (url != null ? !url.equals(image.url) : image.url != null) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = (id != null ? id.hashCode() : 0);
+ result = 31 * result + (url != null ? url.hashCode() : 0);
+ return result;
+ }
+}
Modified: trunk/src/model/org/jboss/blog/model/Post.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Post.java 2008-02-04 13:54:52 UTC (rev 184)
+++ trunk/src/model/org/jboss/blog/model/Post.java 2008-02-04 15:49:11 UTC (rev 185)
@@ -63,6 +63,9 @@
@OneToMany(mappedBy = "post", cascade = CascadeType.ALL)
private List<Enclosure> enclosures;
+ @OneToMany(mappedBy = "post", cascade = CascadeType.ALL)
+ private List<Image> images;
+
@ManyToOne
@NotNull
private Feed feed;
@@ -148,6 +151,14 @@
this.enclosures = enclosures;
}
+ public List<Image> getImages() {
+ return images;
+ }
+
+ public void setImages(List<Image> images) {
+ this.images = images;
+ }
+
public Feed getFeed() {
return feed;
}
Added: trunk/src/model/org/jboss/blog/model/RestrictedImage.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/RestrictedImage.java (rev 0)
+++ trunk/src/model/org/jboss/blog/model/RestrictedImage.java 2008-02-04 15:49:11 UTC (rev 185)
@@ -0,0 +1,12 @@
+package org.jboss.blog.model;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public interface RestrictedImage {
+ Integer getId();
+
+ String getUrl();
+
+ String getTitle();
+}
Modified: trunk/src/model/org/jboss/blog/model/RestrictedPost.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/RestrictedPost.java 2008-02-04 13:54:52 UTC (rev 184)
+++ trunk/src/model/org/jboss/blog/model/RestrictedPost.java 2008-02-04 15:49:11 UTC (rev 185)
@@ -29,5 +29,7 @@
List<? extends RestrictedEnclosure> getEnclosures();
+ List<? extends RestrictedImage> getImages();
+
RestrictedFeed getFeed();
}
Copied: trunk/src/test/org/jboss/blog/session/parser/RomeExample2.java (from rev 175, trunk/src/test/org/jboss/blog/session/parser/RomeExample.java)
===================================================================
--- trunk/src/test/org/jboss/blog/session/parser/RomeExample2.java (rev 0)
+++ trunk/src/test/org/jboss/blog/session/parser/RomeExample2.java 2008-02-04 15:49:11 UTC (rev 185)
@@ -0,0 +1,30 @@
+package org.jboss.blog.session.parser;
+
+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.module.Module;
+
+import java.net.URL;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public class RomeExample2 {
+ public static void main(String[] args) throws IOException, FeedException {
+ SyndFeedInput input = new SyndFeedInput();
+ SyndFeed syndFeed = input.build(
+ new XmlReader(new URL("http://rss.cnn.com/services/podcasting/newscast/rss.xml")));
+
+ List entries = syndFeed.getEntries();
+
+ SyndEntry entry = (SyndEntry) entries.get(0);
+ List x = (List) entry.getForeignMarkup();
+
+ System.out.println(x.get(0).getClass().getName());
+ }
+}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list