You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by zo...@apache.org on 2010/02/07 10:53:02 UTC
svn commit: r907404 - in
/incubator/aries/trunk/samples/blog-sample/blog/src/main:
java/org/apache/aries/samples/blog/ resources/OSGI-INF/blueprint/
Author: zoe
Date: Sun Feb 7 09:53:02 2010
New Revision: 907404
URL: http://svn.apache.org/viewvc?rev=907404&view=rev
Log:
ARIES-149
Added:
incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogAuthorManagerImpl.java
- copied, changed from r907065, incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/AuthorManagerImpl.java
incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogCommentImpl.java
incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogCommentManagerImpl.java
incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogEntryImpl.java
- copied, changed from r907065, incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogPostImpl.java
incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogEntryManagerImpl.java
- copied, changed from r907065, incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogPostManagerImpl.java
Removed:
incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/AuthorManagerImpl.java
incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogPostImpl.java
incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogPostManagerImpl.java
Modified:
incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogAuthorImpl.java
incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogImpl.java
incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BloggingServiceImpl.java
incubator/aries/trunk/samples/blog-sample/blog/src/main/resources/OSGI-INF/blueprint/blueprint.xml
Modified: incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogAuthorImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogAuthorImpl.java?rev=907404&r1=907403&r2=907404&view=diff
==============================================================================
--- incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogAuthorImpl.java (original)
+++ incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogAuthorImpl.java Sun Feb 7 09:53:02 2010
@@ -20,9 +20,12 @@
import java.util.Calendar;
import java.util.Date;
+import java.util.List;
import org.apache.aries.samples.blog.api.BlogAuthor;
+import org.apache.aries.samples.blog.api.BlogEntry;
import org.apache.aries.samples.blog.persistence.api.Author;
+import org.apache.aries.samples.blog.persistence.api.Entry;
@@ -30,12 +33,10 @@
{
private static Calendar cal = Calendar.getInstance();
private Author author;
- private BloggingServiceImpl bloggingService;
- public BlogAuthorImpl(Author a, BloggingServiceImpl bs)
+ public BlogAuthorImpl(Author a)
{
author = a;
- bloggingService = bs;
}
public String getBio()
@@ -75,4 +76,13 @@
return year + "-" + month + "-" + date;
}
+
+ public List<? extends BlogEntry> getEntries() {
+ return adapt(author.getEntries());
+ }
+
+ private List<? extends BlogEntry> adapt (List<? extends Entry> list) {
+ List<BlogEntryImpl> bei = null;;
+ return bei;
+ }
}
\ No newline at end of file
Copied: incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogAuthorManagerImpl.java (from r907065, incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/AuthorManagerImpl.java)
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogAuthorManagerImpl.java?p2=incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogAuthorManagerImpl.java&p1=incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/AuthorManagerImpl.java&r1=907065&r2=907404&rev=907404&view=diff
==============================================================================
--- incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/AuthorManagerImpl.java (original)
+++ incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogAuthorManagerImpl.java Sun Feb 7 09:53:02 2010
@@ -20,7 +20,9 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.Iterator;
import java.util.List;
import org.apache.aries.samples.blog.api.*;
@@ -29,7 +31,7 @@
-public class AuthorManagerImpl implements AuthorManager
+public class BlogAuthorManagerImpl implements BlogAuthorManager
{
private BlogPersistenceService persistenceService;
@@ -50,15 +52,20 @@
persistenceService.createAuthor(email, dateOfBirth, name, displayName, bio);
}
- public List<Author> getAllAuthors()
+ public List<? extends BlogAuthor> getAllAuthors()
{
- return persistenceService.getAllAuthors();
+ List<? extends Author> authors = persistenceService.getAllAuthors();
+ return adaptAuthor(authors);
}
- public Author getAuthor(String emailAddress)
+ public BlogAuthor getAuthor(String emailAddress)
{
if(emailAddress == null) throw new IllegalArgumentException("Email must not be null");
- return persistenceService.getAuthor(emailAddress);
+ Author a = persistenceService.getAuthor(emailAddress);
+ if (a != null)
+ return new BlogAuthorImpl(a);
+ else
+ return null;
}
public void removeAuthor(String emailAddress)
@@ -68,16 +75,24 @@
}
public void updateAuthor(String email, String dob, String name, String displayName, String bio) throws ParseException
- {
+ {
+ if (email == null)
+ throw new IllegalArgumentException("Email must not be null");
Date dateOfBirth = (dob == null) ? null : new SimpleDateFormat("yyyy-MM-dd").parse(dob);
- updateAuthor(email, dateOfBirth, name, displayName, bio);
+ persistenceService.updateAuthor(email, dateOfBirth, name, displayName, bio);
}
- public void updateAuthor(String email, Date dob, String name, String displayName, String bio) throws ParseException
- {
- if(email == null) throw new IllegalArgumentException("Email must not be null");
-
- persistenceService.updateAuthor(email, dob, name, displayName, bio);
- }
+ private List<? extends BlogAuthor> adaptAuthor(
+ List<? extends Author> authors) {
+ List<BlogAuthorImpl> list = new ArrayList<BlogAuthorImpl>();
+
+ Iterator<? extends Author> a = authors.iterator();
+ while (a.hasNext()) {
+ list.add(new BlogAuthorImpl(a.next()));
+ }
+
+ return list;
+
+ }
}
Added: incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogCommentImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogCommentImpl.java?rev=907404&view=auto
==============================================================================
--- incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogCommentImpl.java (added)
+++ incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogCommentImpl.java Sun Feb 7 09:53:02 2010
@@ -0,0 +1,88 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.aries.samples.blog;
+
+import java.util.Date;
+import java.util.Calendar;
+
+import org.apache.aries.samples.blog.api.BlogAuthor;
+import org.apache.aries.samples.blog.api.BlogComment;
+import org.apache.aries.samples.blog.api.BlogEntry;
+import org.apache.aries.samples.blog.comment.persistence.api.Comment;
+
+
+public class BlogCommentImpl implements BlogComment {
+ private static Calendar cal = Calendar.getInstance();
+
+ private Comment comment;
+
+ public BlogCommentImpl(Comment c) {
+ comment = c;
+ }
+ /** Get comment
+ * @return the String representing the comment
+ */
+ public String getComment() {
+ return comment.getComment();
+ }
+
+ /** Get the author of the comment
+ * @return the BlogAuthor instance
+ */
+ public BlogAuthor getAuthor() {
+ return new BlogAuthorImpl(comment.getAuthor());
+ }
+
+ /** Get the parent blog post for the comment
+ * @return the BlogPost instance the comment is attached to.
+ */
+ public BlogEntry getEntry() {
+ return new BlogEntryImpl(comment.getEntry());
+ }
+
+ /** Get the Id value of the comment
+ * @return the integer id of the comment
+ */
+ public int getId() {
+ return comment.getId();
+ }
+
+ /** Get the creation date for the comment
+ * @return the String representation of the date the comment was
+ * created in dd-mm-yyyy format.
+ */
+ public String getCommentCreationDate() {
+
+ Date dc = comment.getCreationDate();
+ int year;
+ int month;
+ int date;
+
+ synchronized (cal) {
+ cal.setTime(dc);
+ year = cal.get(Calendar.YEAR);
+ month = cal.get(Calendar.MONTH) + 1;
+ date = cal.get(Calendar.DATE);
+ }
+
+ return year + "-" + month + "-" + date;
+
+ }
+
+}
Added: incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogCommentManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogCommentManagerImpl.java?rev=907404&view=auto
==============================================================================
--- incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogCommentManagerImpl.java (added)
+++ incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogCommentManagerImpl.java Sun Feb 7 09:53:02 2010
@@ -0,0 +1,88 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.aries.samples.blog;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.aries.samples.blog.api.BlogComment;
+import org.apache.aries.samples.blog.api.BlogCommentManager;
+import org.apache.aries.samples.blog.comment.persistence.api.BlogCommentService;
+import org.apache.aries.samples.blog.comment.persistence.api.Comment;
+
+
+public class BlogCommentManagerImpl implements BlogCommentManager {
+
+ private BlogCommentService commentService;
+ private boolean commentServiceValid;
+
+ // Injected via blueprint
+ public void setCommentService(BlogCommentService bcs) {
+ commentService = bcs;
+ }
+
+
+ public void createComment(String comment, String email, long entryId) {
+ commentService.createComment(comment, email, entryId);
+ }
+
+ public List<? extends BlogComment> getCommentsByAuthor(String email) {
+ List<? extends Comment> comment = commentService.getCommentsForAuthor(email);
+ return adaptComment(comment);
+
+ }
+
+ public List<? extends BlogComment> getCommentsForPost(long id) {
+ List<? extends Comment> comment = commentService.getCommentsForEntry(id);
+ return adaptComment(comment);
+ }
+
+
+ public void deleteComment(int id) {
+ commentService.delete(id);
+ }
+
+ private List<? extends BlogComment> adaptComment(
+ List<? extends Comment> comments) {
+ List<BlogComment> list = new ArrayList<BlogComment>();
+
+ Iterator<? extends Comment> c = comments.iterator();
+ while (c.hasNext()) {
+ list.add(new BlogCommentImpl(c.next()));
+
+ }
+ return list;
+
+ }
+
+ public boolean isCommentingAvailable() {
+ return commentServiceValid;
+ }
+
+ public void blogServiceBound(BlogCommentService comment, Map props) {
+ commentServiceValid = true;
+ }
+
+ public void blogServiceUnbound(BlogCommentService comment, Map props) {
+
+ }
+
+}
Copied: incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogEntryImpl.java (from r907065, incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogPostImpl.java)
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogEntryImpl.java?p2=incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogEntryImpl.java&p1=incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogPostImpl.java&r1=907065&r2=907404&rev=907404&view=diff
==============================================================================
--- incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogPostImpl.java (original)
+++ incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogEntryImpl.java Sun Feb 7 09:53:02 2010
@@ -20,31 +20,25 @@
import java.util.Date;
-import org.apache.aries.samples.blog.api.BlogPost;
-import org.apache.aries.samples.blog.api.BlogPostManager;
-import org.apache.aries.samples.blog.persistence.api.BlogEntry;
+import org.apache.aries.samples.blog.api.BlogAuthor;
+import org.apache.aries.samples.blog.api.BlogEntry;
+import org.apache.aries.samples.blog.persistence.api.Entry;
/** Implementation of a BlogPast */
-public class BlogPostImpl implements BlogPost
+public class BlogEntryImpl implements BlogEntry
{
- public BlogEntry theEntry;
-
- private BlogPostManager postManager;
+ public Entry theEntry;
- public BlogPostImpl(BlogEntry blogEntry, BlogPostManager pManager)
+ public BlogEntryImpl(Entry blogEntry)
{
theEntry = blogEntry;
- postManager = pManager;
}
- public String getAuthor()
+ public BlogAuthor getAuthor()
{
- String result = theEntry.getAuthor().getDisplayName();
-
- if (result == null || result.length() == 0) result = theEntry.getAuthor().getEmail();
+ return new BlogAuthorImpl(theEntry.getAuthor());
- return result;
}
public String getBody()
@@ -57,11 +51,6 @@
return theEntry.getTitle();
}
- protected BlogEntry getBlogEntry()
- {
- return theEntry;
- }
-
public String getAuthorEmail()
{
return theEntry.getAuthor().getEmail();
Copied: incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogEntryManagerImpl.java (from r907065, incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogPostManagerImpl.java)
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogEntryManagerImpl.java?p2=incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogEntryManagerImpl.java&p1=incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogPostManagerImpl.java&r1=907065&r2=907404&rev=907404&view=diff
==============================================================================
--- incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogPostManagerImpl.java (original)
+++ incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogEntryManagerImpl.java Sun Feb 7 09:53:02 2010
@@ -24,20 +24,18 @@
import java.util.Date;
import java.util.List;
-import org.apache.aries.samples.blog.api.BlogPost;
-import org.apache.aries.samples.blog.api.BlogPostManager;
-import org.apache.aries.samples.blog.persistence.api.Author;
-import org.apache.aries.samples.blog.persistence.api.BlogEntry;
+import org.apache.aries.samples.blog.api.BlogAuthor;
+import org.apache.aries.samples.blog.api.BlogEntry;
+import org.apache.aries.samples.blog.api.BlogEntryManager;
import org.apache.aries.samples.blog.persistence.api.BlogPersistenceService;
+import org.apache.aries.samples.blog.persistence.api.Entry;
-public class BlogPostManagerImpl implements BlogPostManager
+public class BlogEntryManagerImpl implements BlogEntryManager
{
private BlogPersistenceService persistenceService;
-
- private boolean commentServiceValid;
// Injected via blueprint
public void setPersistenceService(BlogPersistenceService persistenceService)
@@ -46,39 +44,44 @@
}
- public void createBlogPost(Author a, String title, String blogText, List<String> tags)
+ public void createBlogPost(String email, String title, String blogText, List<String> tags)
{
- persistenceService.createBlogPost(a, title, blogText, tags);
+ persistenceService.createBlogPost(email, title, blogText, tags);
}
- public BlogEntry findBlogEntryByTitle(String title)
+ public Entry findBlogEntryByTitle(String title)
{
return persistenceService.findBlogEntryByTitle(title);
}
- public List<BlogEntry> getAllBlogEntries()
+ public List<? extends BlogEntry> getAllBlogEntries()
{
- return persistenceService.getAllBlogEntries();
+ List<? extends Entry> entries = persistenceService.getAllBlogEntries();
+ return adaptEntries(entries);
}
- public List<BlogEntry> getBlogEntries(int firstPostIndex, int noOfPosts)
+ public List<? extends BlogEntry> getBlogEntries(int firstPostIndex, int noOfPosts)
{
- return persistenceService.getBlogEntries(firstPostIndex, noOfPosts);
+ List<? extends Entry> entries = persistenceService.getBlogEntries(firstPostIndex, noOfPosts);
+ return adaptEntries(entries);
}
- public List<BlogEntry> getBlogsForAuthor(String emailAddress)
+ public List<? extends BlogEntry> getBlogsForAuthor(String emailAddress)
{
- return persistenceService.getBlogsForAuthor(emailAddress);
+ List <?extends Entry> entries= persistenceService.getBlogsForAuthor(emailAddress);
+ return adaptEntries(entries);
+
}
- public List<BlogEntry> getBlogEntriesModifiedBetween(String startDate, String endDate) throws ParseException
+ public List<? extends BlogEntry> getBlogEntriesModifiedBetween(String startDate, String endDate) throws ParseException
{
if(startDate == null || "".equals(startDate)) throw new IllegalArgumentException("A valid start date must be supplied");
if(endDate == null || "".equals(endDate)) throw new IllegalArgumentException("A valid end date must be supplied");
SimpleDateFormat sdf = new SimpleDateFormat("dd-mm-yyyy");
Date start = sdf.parse(startDate);
Date end = sdf.parse(endDate);
- return persistenceService.getBlogEntriesModifiedBetween(start, end);
+ List <? extends Entry> entries = persistenceService.getBlogEntriesModifiedBetween(start, end);
+ return adaptEntries(entries);
}
public int getNoOfPosts()
@@ -86,47 +89,58 @@
return persistenceService.getNoOfBlogEntries();
}
- public void removeBlogEntry(Author a, String title, String publishDate) throws ParseException
+ public void removeBlogEntry(BlogAuthor a, String title, String publishDate) throws ParseException
{
if(a == null) throw new IllegalArgumentException("An author must be specified");
if(title == null) title = "";
if(publishDate == null) throw new IllegalArgumentException("The article must have a publication date");
- BlogEntry found = null;
Date pubDate = parseDate(publishDate);
+ long found = -920234218060948564L;
- for(BlogEntry b : a.getPosts()) {
+ for(BlogEntry b : a.getEntries()) {
if(title.equals(b.getTitle()) && pubDate.equals(b.getPublishDate())){
- found = b;
+ found = b.getId();
break;
}
}
persistenceService.removeBlogEntry(found);
}
- public void updateBlogEntry(BlogEntry originalEntry, Author a, String title, String publishDate, String blogText, List<String> tags) throws ParseException
+ public void updateBlogEntry(BlogEntry originalEntry, BlogAuthor a, String title, String publishDate, String blogText, List<String> tags) throws ParseException
{
- if(originalEntry.getAuthor() == null || originalEntry.getAuthor().getEmail() == null) throw new IllegalArgumentException("An author must be specified");
- if(title == null) title = "";
- if(publishDate == null) throw new IllegalArgumentException("The article must have a publication date");
- BlogEntry found = null;
- Date pubDate = parseDate(publishDate);
- for(BlogEntry b : getBlogsForAuthor(originalEntry.getAuthor().getEmail())) {
- if(title.equals(b.getTitle()) && pubDate.equals(b.getPublishDate())){
- found = b;
- break;
- }
- }
-
- if(found == null)
- throw new IllegalArgumentException("No blog entry could be found");
-
- found.setAuthor(a);
- found.setTitle(title);
- found.setBlogText(blogText);
- found.setTags((tags == null) ? new ArrayList<String>() : tags);
- found.setUpdatedDate(new Date(System.currentTimeMillis()));
-
- persistenceService.updateBlogPost(found);
+
+ if (originalEntry.getAuthor() == null
+ || originalEntry.getAuthorEmail() == null)
+ throw new IllegalArgumentException("An author must be specified");
+ if (title == null)
+ title = "";
+ if (publishDate == null)
+ throw new IllegalArgumentException(
+ "The article must have a publication date");
+ long found = -920234218060948564L;
+ Date pubDate = parseDate(publishDate);
+ for (BlogEntry b : getBlogsForAuthor(originalEntry.getAuthorEmail()
+ )) {
+ if (title.equals(b.getTitle())
+ && pubDate.equals(b.getPublishDate())) {
+ found = b.getId();
+ break;
+ }
+ }
+
+ if (found == -920234218060948564L)
+ throw new IllegalArgumentException("No blog entry could be found");
+
+ String email = a.getEmailAddress();
+
+ if (tags == null) {
+ tags = new ArrayList<String>();
+ }
+
+ Date updatedDate = new Date(System.currentTimeMillis());
+
+ persistenceService.updateBlogEntry(found, email, title, blogText, tags,
+ updatedDate);
}
private Date parseDate(String dateString) throws ParseException
@@ -135,14 +149,20 @@
return sdf.parse(dateString);
}
- public boolean isCommentingAvailable()
- {
- return commentServiceValid;
- }
-
- public BlogPost getBlogPost(long id)
+ public BlogEntry getBlogPost(long id)
{
- return new BlogPostImpl(persistenceService.getBlogEntryById(id), this);
+ return new BlogEntryImpl(persistenceService.getBlogEntryById(id));
}
+
+ private List <? extends BlogEntry> adaptEntries(List<? extends Entry> e) {
+ List<BlogEntryImpl> posts = new ArrayList<BlogEntryImpl>();
+
+ for (Entry entry : e) {
+ posts.add(new BlogEntryImpl(entry));
+ }
+
+ return posts;
+ }
+
}
\ No newline at end of file
Modified: incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogImpl.java?rev=907404&r1=907403&r2=907404&view=diff
==============================================================================
--- incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogImpl.java (original)
+++ incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BlogImpl.java Sun Feb 7 09:53:02 2010
@@ -18,53 +18,15 @@
*/
package org.apache.aries.samples.blog;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.aries.samples.blog.api.*;
-import org.apache.aries.samples.blog.persistence.api.Author;
-import org.apache.aries.samples.blog.persistence.api.BlogEntry;
+import org.apache.aries.samples.blog.api.Blog;
/** Implementation of Blog */
public class BlogImpl implements Blog
{
- private BlogPostManager postManager;
- private AuthorManager authorManager;
- public BlogImpl(AuthorManager aManager, BlogPostManager bManager)
- {
- postManager = bManager;
- authorManager = aManager;
- }
-
public String getBlogTitle()
{
return "Sample Blog";
}
-
- public int getNoOfPosts()
- {
- return postManager.getNoOfPosts();
- }
-
- public List<BlogPost> getPosts(int firstPostIndex, int noOfPosts)
- {
- List<BlogEntry> entries = postManager.getBlogEntries(firstPostIndex, noOfPosts);
- List<BlogPost> posts = new ArrayList<BlogPost>();
-
- for (BlogEntry entry : entries) {
- posts.add(new BlogPostImpl(entry, postManager));
- }
-
- return posts;
- }
-
- public void createPost(String email, String title, String text, String tags)
- {
- Author author = authorManager.getAuthor(email);
-
- postManager.createBlogPost(author, title, text, Arrays.asList(tags.split(",")));
- }
}
\ No newline at end of file
Modified: incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BloggingServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BloggingServiceImpl.java?rev=907404&r1=907403&r2=907404&view=diff
==============================================================================
--- incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BloggingServiceImpl.java (original)
+++ incubator/aries/trunk/samples/blog-sample/blog/src/main/java/org/apache/aries/samples/blog/BloggingServiceImpl.java Sun Feb 7 09:53:02 2010
@@ -19,72 +19,109 @@
package org.apache.aries.samples.blog;
import java.text.ParseException;
+import java.util.Arrays;
+import java.util.List;
-import org.apache.aries.samples.blog.api.AuthorManager;
-import org.apache.aries.samples.blog.api.Blog;
import org.apache.aries.samples.blog.api.BlogAuthor;
-import org.apache.aries.samples.blog.api.BlogPost;
-import org.apache.aries.samples.blog.api.BlogPostManager;
+import org.apache.aries.samples.blog.api.BlogAuthorManager;
+import org.apache.aries.samples.blog.api.BlogComment;
+import org.apache.aries.samples.blog.api.BlogCommentManager;
+import org.apache.aries.samples.blog.api.BlogEntry;
+import org.apache.aries.samples.blog.api.BlogEntryManager;
import org.apache.aries.samples.blog.api.BloggingService;
-import org.apache.aries.samples.blog.persistence.api.Author;
-
-
/** Implementation of the BloggingService */
-public class BloggingServiceImpl implements BloggingService
-{
- private BlogPostManager blogPostManager;
- private AuthorManager authorManager;
-
- // Injected via blueprint
- public void setBlogPostManager(BlogPostManager blogPostManager)
- {
- this.blogPostManager = blogPostManager;
- }
-
- // Injected via blueprint
- public void setAuthorManager(AuthorManager authorManager)
- {
- this.authorManager = authorManager;
- }
-
- public Blog getBlog()
- {
- return new BlogImpl(authorManager, blogPostManager);
- }
-
- public BlogAuthor getBlogAuthor(String email)
- {
- Author a = authorManager.getAuthor(email);
- if (a != null)
- return new BlogAuthorImpl(a, this);
- else
- return null;
- }
-
- public void createAuthor(String email, String nickName, String name, String bio, String dob)
- {
- try {
- authorManager.createAuthor(email, dob, name, nickName, bio);
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- public void updateAuthor(String email, String nickName, String name, String bio, String dob)
- {
- try {
- authorManager.updateAuthor(email, dob, name, nickName, bio);
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
-
- public BlogPost getPost(long id)
- {
- return blogPostManager.getBlogPost(id);
- }
+public class BloggingServiceImpl implements BloggingService {
+ private BlogEntryManager blogEntryManager;
+ private BlogAuthorManager blogAuthorManager;
+ private BlogCommentManager blogCommentManager;
+
+ // Injected via blueprint
+ public void setBlogEntryManager(BlogEntryManager blogPostManager) {
+ this.blogEntryManager = blogPostManager;
+ }
+
+ // Injected via blueprint
+ public void setBlogAuthorManager(BlogAuthorManager authorManager) {
+ this.blogAuthorManager = authorManager;
+ }
+
+ // Injected via blueprint
+ public void setBlogCommentManager(BlogCommentManager commentManager) {
+ this.blogCommentManager = commentManager;
+ }
+
+
+ public String getBlogTitle() {
+ return new BlogImpl().getBlogTitle();
+ }
+
+ public BlogAuthor getBlogAuthor(String email) {
+ return blogAuthorManager.getAuthor(email);
+ }
+
+ public void createBlogAuthor(String email, String nickName, String name,
+ String bio, String dob) {
+ try {
+ blogAuthorManager.createAuthor(email, dob, name, nickName, bio);
+ } catch (ParseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ public void updateBlogAuthor(String email, String nickName, String name,
+ String bio, String dob) {
+ try {
+ blogAuthorManager.updateAuthor(email, dob, name, nickName, bio);
+ } catch (ParseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ public BlogEntry getPost(long id) {
+ return blogEntryManager.getBlogPost(id);
+ }
+
+ public List<? extends BlogEntry> getBlogEntries(int firstPostIndex,
+ int noOfPosts) {
+ return blogEntryManager.getBlogEntries(firstPostIndex, noOfPosts);
+
+ }
+
+ public List<? extends BlogEntry> getAllBlogEntries() {
+ return blogEntryManager.getAllBlogEntries();
+ }
+
+ public int getNoOfEntries() {
+ return blogEntryManager.getNoOfPosts();
+ }
+
+ public void createBlogEntry(String email, String title, String blogText,
+ String tags) {
+ blogEntryManager.createBlogPost(email, title, blogText, Arrays
+ .asList(tags.split(",")));
+ }
+
+ public void createBlogComment(String comment, String authorEmail, long id) {
+ blogCommentManager.createComment(comment, authorEmail, id);
+ }
+
+ public void deleteBlogComment(BlogComment comment) {
+ blogCommentManager.deleteComment(comment.getId());
+ }
+
+ public List<? extends BlogComment> getCommentsForEntry(BlogEntry entry) {
+ return blogCommentManager.getCommentsForPost(entry.getId());
+ }
+
+ public BlogEntry getBlogEntry(long id) {
+ return blogEntryManager.getBlogPost(id);
+ }
+
+ public boolean isCommentingAvailable() {
+ return blogCommentManager.isCommentingAvailable();
+
+ }
}
\ No newline at end of file
Modified: incubator/aries/trunk/samples/blog-sample/blog/src/main/resources/OSGI-INF/blueprint/blueprint.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/samples/blog-sample/blog/src/main/resources/OSGI-INF/blueprint/blueprint.xml?rev=907404&r1=907403&r2=907404&view=diff
==============================================================================
--- incubator/aries/trunk/samples/blog-sample/blog/src/main/resources/OSGI-INF/blueprint/blueprint.xml (original)
+++ incubator/aries/trunk/samples/blog-sample/blog/src/main/resources/OSGI-INF/blueprint/blueprint.xml Sun Feb 7 09:53:02 2010
@@ -19,21 +19,31 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0">
- <bean id="authorManager" class="org.apache.aries.samples.blog.AuthorManagerImpl" activation="lazy">
+ <bean id="blogAuthorManager" class="org.apache.aries.samples.blog.BlogAuthorManagerImpl">
<property name="persistenceService" ref="persistenceManager"/>
</bean>
-
- <bean id="blogPostManager" class="org.apache.aries.samples.blog.BlogPostManagerImpl" activation="lazy">
+
+ <bean id="blogEntryManager" class="org.apache.aries.samples.blog.BlogEntryManagerImpl">
<property name="persistenceService" ref="persistenceManager"/>
</bean>
-
- <bean id="bloggingServiceComponent" class="org.apache.aries.samples.blog.BloggingServiceImpl" activation="lazy">
- <property name="blogPostManager" ref="blogPostManager"/>
- <property name="authorManager" ref="authorManager"/>
+
+ <bean id="blogCommentManager" class="org.apache.aries.samples.blog.BlogCommentManagerImpl">
+ <property name="commentService" ref="commentPersistenceService"/>
</bean>
-
- <service id="bloggingService" ref="bloggingServiceComponent" interface="org.apache.aries.samples.blog.api.BloggingService"/>
+
+
+ <bean id="bloggingServiceComponent" class="org.apache.aries.samples.blog.BloggingServiceImpl">
+ <property name="blogEntryManager" ref="blogEntryManager"/>
+ <property name="blogAuthorManager" ref="blogAuthorManager"/>
+ <property name="blogCommentManager" ref="blogCommentManager"/>
+ </bean>
+
+ <service ref="bloggingServiceComponent" interface="org.apache.aries.samples.blog.api.BloggingService"/>
<reference id="persistenceManager" interface="org.apache.aries.samples.blog.persistence.api.BlogPersistenceService"/>
+ <reference id="commentPersistenceService" availability="optional" interface="org.apache.aries.samples.blog.comment.persistence.api.BlogCommentService">
+ <reference-listener ref="blogCommentManager" bind-method="blogServiceBound" unbind-method="blogServiceUnbound"/>
+ </reference>
+
</blueprint>