[jboss-cvs] JBossBlog SVN: r217 - in trunk: resources/META-INF and 17 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Feb 25 04:47:41 EST 2008
Author: adamw
Date: 2008-02-25 04:47:41 -0500 (Mon, 25 Feb 2008)
New Revision: 217
Added:
trunk/src/action/org/jboss/blog/session/configuration/
trunk/src/action/org/jboss/blog/session/configuration/ConfigurationManager.java
trunk/src/action/org/jboss/blog/session/feed/mod/PropositionsCountBean.java
trunk/src/model/org/jboss/blog/model/configuration/
trunk/src/model/org/jboss/blog/model/configuration/Configuration.java
Removed:
trunk/src/action/org/jboss/blog/session/Authenticator.java
trunk/view/login.xhtml
trunk/view/manage/add.xhtml
Modified:
trunk/resources/META-INF/persistence-design.xml
trunk/resources/META-INF/persistence-dev.xml
trunk/resources/META-INF/persistence-prod.xml
trunk/resources/WEB-INF/pages.xml
trunk/resources/messages_en.properties
trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java
trunk/src/action/org/jboss/blog/session/feed/mod/AggregatedFeedModBean.java
trunk/src/action/org/jboss/blog/session/group/GroupsServiceImpl.java
trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java
trunk/src/action/org/jboss/blog/session/security/SecurityManager.java
trunk/src/action/org/jboss/blog/session/update/UpdateHandler.java
trunk/src/action/org/jboss/blog/session/update/UpdateManager.java
trunk/src/action/org/jboss/blog/session/view/FeedViewBean.java
trunk/src/services/org/jboss/blog/service/FeedsService.java
trunk/src/services/org/jboss/blog/service/GroupsService.java
trunk/view/home.xhtml
trunk/view/manage/feed_mod.xhtml
trunk/view/manage/group/group_list.xhtml
trunk/view/manage/index.xhtml
trunk/view/manage/proposition/proposition_list.xhtml
trunk/view/manage/update_manager.xhtml
Log:
Modified: trunk/resources/META-INF/persistence-design.xml
===================================================================
--- trunk/resources/META-INF/persistence-design.xml 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/resources/META-INF/persistence-design.xml 2008-02-25 09:47:41 UTC (rev 217)
@@ -17,6 +17,7 @@
<class>org.jboss.blog.model.Enclosure</class>
<class>org.jboss.blog.model.Image</class>
<class>org.jboss.blog.model.Template</class>
+ <class>org.jboss.blog.model.configuration.Configuration</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
@@ -34,10 +35,10 @@
<property name="hibernate.cache.provider_configuration_file_resource_path" value="blog-ehcache.xml" />
<!-- TODO Search -->
- <!-- use a file system based index -->
+ <!-- use a file system based index
<property name="hibernate.search.default.directory_provider"
- value="org.hibernate.search.store.FSDirectoryProvider"/>
- <!-- directory where the indexes will be stored -->
+ value="org.hibernate.search.store.FSDirectoryProvider"/> -->
+ <!-- directory where the indexes will be stored
<property name="hibernate.search.default.indexBase"
value="/Users/adamwarski/jboss/blog-index"/>
@@ -46,7 +47,7 @@
<property name="hibernate.ejb.event.post-update"
value="org.hibernate.search.event.FullTextIndexEventListener"/>
<property name="hibernate.ejb.event.post-delete"
- value="org.hibernate.search.event.FullTextIndexEventListener"/>
+ value="org.hibernate.search.event.FullTextIndexEventListener"/>-->
</properties>
</persistence-unit>
Modified: trunk/resources/META-INF/persistence-dev.xml
===================================================================
--- trunk/resources/META-INF/persistence-dev.xml 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/resources/META-INF/persistence-dev.xml 2008-02-25 09:47:41 UTC (rev 217)
@@ -17,6 +17,7 @@
<class>org.jboss.blog.model.Enclosure</class>
<class>org.jboss.blog.model.Image</class>
<class>org.jboss.blog.model.Template</class>
+ <class>org.jboss.blog.model.configuration.Configuration</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
Modified: trunk/resources/META-INF/persistence-prod.xml
===================================================================
--- trunk/resources/META-INF/persistence-prod.xml 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/resources/META-INF/persistence-prod.xml 2008-02-25 09:47:41 UTC (rev 217)
@@ -17,6 +17,7 @@
<class>org.jboss.blog.model.Enclosure</class>
<class>org.jboss.blog.model.Image</class>
<class>org.jboss.blog.model.Template</class>
+ <class>org.jboss.blog.model.configuration.Configuration</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
Modified: trunk/resources/WEB-INF/pages.xml
===================================================================
--- trunk/resources/WEB-INF/pages.xml 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/resources/WEB-INF/pages.xml 2008-02-25 09:47:41 UTC (rev 217)
@@ -42,8 +42,6 @@
<!-- Manage feeds -->
- <page view-id="/manage/add.xhtml" />
-
<page view-id="/manage/feed_add.xhtml" conversation-required="true">
<navigation from-action="#{feedMod.saveNew}">
<end-conversation />
@@ -254,6 +252,10 @@
</navigation>
</page>
+ <!-- Manage -->
+
+ <page view-id="/manage/update_manager.xhtml" />
+
<!-- Exceptions -->
<exception class="org.jboss.seam.framework.EntityNotFoundException">
Modified: trunk/resources/messages_en.properties
===================================================================
--- trunk/resources/messages_en.properties 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/resources/messages_en.properties 2008-02-25 09:47:41 UTC (rev 217)
@@ -123,4 +123,6 @@
blog.post.deleted=Post '{0}' deleted.
blog.search.exception=Malformed search query: {0}.
-blog.search.emptyquery=Your query is empty.
\ No newline at end of file
+blog.search.emptyquery=Your query is empty.
+
+blog.configuration.saved=Configuration saved.
\ No newline at end of file
Deleted: trunk/src/action/org/jboss/blog/session/Authenticator.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/Authenticator.java 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/src/action/org/jboss/blog/session/Authenticator.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -1,26 +0,0 @@
-package org.jboss.blog.session;
-
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Logger;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.log.Log;
-import org.jboss.seam.security.Identity;
-
-
- at Name("authenticator")
-public class Authenticator
-{
- @Logger Log log;
-
- @In Identity identity;
-
- public boolean authenticate()
- {
- log.info("authenticating #0", identity.getUsername());
- //write your authentication logic here,
- //return true if the authentication was
- //successful, false otherwise
- identity.addRole("admin");
- return true;
- }
-}
Added: trunk/src/action/org/jboss/blog/session/configuration/ConfigurationManager.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/configuration/ConfigurationManager.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/configuration/ConfigurationManager.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -0,0 +1,46 @@
+package org.jboss.blog.session.configuration;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.ScopeType;
+import org.jboss.blog.model.configuration.Configuration;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.NonUniqueResultException;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("configurationManager")
+ at Scope(ScopeType.APPLICATION)
+ at AutoCreate
+public class ConfigurationManager {
+ @In
+ private EntityManager entityManager;
+
+ private Configuration initNewConfiguration() {
+ Configuration conf = new Configuration();
+ conf.setConnectionTimeout(5000);
+ conf.setReadTimeout(3000);
+ conf.setUpdateInterval(900);
+
+ return conf;
+ }
+
+ public synchronized Configuration getConfiguration() {
+ try {
+ return (Configuration) entityManager.createQuery("select conf from Configuration conf").getSingleResult();
+ } catch (NoResultException e) {
+ Configuration conf = initNewConfiguration();
+ entityManager.persist(conf);
+ entityManager.flush();
+
+ return conf;
+ } catch (NonUniqueResultException e) {
+ throw new RuntimeException("There should be at most 1 configuration entity!", e);
+ }
+ }
+}
Modified: trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -4,7 +4,6 @@
import org.jboss.blog.model.feed.RestrictedFeed;
import org.jboss.blog.model.Post;
import org.jboss.blog.model.RestrictedPost;
-import org.jboss.blog.model.Group;
import org.jboss.blog.service.FeedNotFoundException;
import org.jboss.blog.service.FeedsService;
import org.jboss.blog.service.PostNotFoundException;
@@ -39,12 +38,6 @@
@Logger
private Log log;
- @SuppressWarnings("unchecked")
- public List<Group> getAllGroups() {
- return entityManager.createQuery("select group from Group group order by group.name")
- .setHint("org.hibernate.cacheable", Boolean.TRUE).getResultList();
- }
-
public Post getPost(String titleAsId) throws PostNotFoundException {
log.debug("Reading post '#0' from the DB.", titleAsId);
try {
Modified: trunk/src/action/org/jboss/blog/session/feed/mod/AggregatedFeedModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/mod/AggregatedFeedModBean.java 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/src/action/org/jboss/blog/session/feed/mod/AggregatedFeedModBean.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -108,7 +108,7 @@
@Create
public void populateLists() {
// Populating available groups
- availableGroups = feedsService.getAllGroups();
+ availableGroups = groupsService.getAllGroups();
availableFeeds = new ArrayList<Feed>();
for (Group availableGroup : availableGroups) {
Added: trunk/src/action/org/jboss/blog/session/feed/mod/PropositionsCountBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/mod/PropositionsCountBean.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/feed/mod/PropositionsCountBean.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -0,0 +1,28 @@
+package org.jboss.blog.session.feed.mod;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.ScopeType;
+import org.jboss.blog.service.GroupsService;
+import org.jboss.blog.model.Group;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("propositionsCount")
+ at Scope(ScopeType.STATELESS)
+public class PropositionsCountBean {
+ @In
+ private GroupsService groupsService;
+
+ public int getPendingPropositions() {
+ int total = 0;
+
+ for (Group group : groupsService.getAllGroups()) {
+ total += groupsService.unacceptedFeeds(group).size();
+ }
+
+ return total;
+ }
+}
\ No newline at end of file
Modified: trunk/src/action/org/jboss/blog/session/group/GroupsServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/group/GroupsServiceImpl.java 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/src/action/org/jboss/blog/session/group/GroupsServiceImpl.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -22,6 +22,12 @@
@In
private EntityManager entityManager;
+ @SuppressWarnings("unchecked")
+ public List<Group> getAllGroups() {
+ return entityManager.createQuery("select group from Group group order by group.name")
+ .setHint("org.hibernate.cacheable", Boolean.TRUE).getResultList();
+ }
+
public List<Feed> acceptedFeeds(Group group) {
//noinspection unchecked
return entityManager
Modified: trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -9,7 +9,9 @@
import org.jboss.blog.model.Post;
import org.jboss.blog.model.Enclosure;
import org.jboss.blog.model.Image;
+import org.jboss.blog.model.configuration.Configuration;
import org.jboss.blog.session.category.CategoryServiceBean;
+import org.jboss.blog.session.configuration.ConfigurationManager;
import org.jboss.blog.tools.StringTools;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.In;
@@ -36,6 +38,9 @@
@In
private CategoryServiceBean categoryService;
+ @In
+ private ConfigurationManager configurationManager;
+
private Image getImageFromForeignMarkup(Post post, List<Element> foreignMarkup) {
for (Element element : foreignMarkup) {
if ("image".equals(element.getName())) {
@@ -58,9 +63,11 @@
try {
SyndFeedInput input = new SyndFeedInput();
+ Configuration conf = configurationManager.getConfiguration();
+
URLConnection conn = new URL(link).openConnection();
- conn.setReadTimeout(3000);
- conn.setConnectTimeout(5000);
+ conn.setReadTimeout(conf.getReadTimeout());
+ conn.setConnectTimeout(conf.getConnectionTimeout());
conn.connect();
SyndFeed syndFeed = input.build(new XmlReader(conn.getInputStream()));
Modified: trunk/src/action/org/jboss/blog/session/security/SecurityManager.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/SecurityManager.java 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/src/action/org/jboss/blog/session/security/SecurityManager.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -8,7 +8,7 @@
import org.jboss.blog.model.Group;
import org.jboss.blog.model.security.SecurityRoles;
import org.jboss.blog.model.feed.Feed;
-import org.jboss.blog.service.FeedsService;
+import org.jboss.blog.service.GroupsService;
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
@@ -20,7 +20,7 @@
private Identity identity;
@In
- private FeedsService feedsService;
+ private GroupsService groupsService;
public boolean hasAdminRole() {
return identity.hasRole(SecurityRoles.ADMIN.toString());
@@ -35,7 +35,7 @@
return true;
}
- for (Group group : feedsService.getAllGroups()) {
+ for (Group group : groupsService.getAllGroups()) {
if (identity.hasRole(SecurityRoles.GROUP_ADMIN + "/" + group.getName())) {
return true;
}
Modified: trunk/src/action/org/jboss/blog/session/update/UpdateHandler.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/update/UpdateHandler.java 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/src/action/org/jboss/blog/session/update/UpdateHandler.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -3,7 +3,6 @@
import org.jboss.blog.model.feed.Feed;
import org.jboss.blog.model.feed.RestrictedFeed;
import org.jboss.blog.model.Group;
-import org.jboss.blog.service.FeedsService;
import org.jboss.blog.service.GroupsService;
import org.jboss.blog.session.feed.type.FeedTypes;
import org.jboss.seam.annotations.AutoCreate;
@@ -22,9 +21,6 @@
@AutoCreate
public class UpdateHandler {
@In
- private FeedsService feedsService;
-
- @In
private GroupsService groupsService;
@In
@@ -34,7 +30,7 @@
private UpdateManager updateManager;
public void update() {
- for (Group group : feedsService.getAllGroups()) {
+ for (Group group : groupsService.getAllGroups()) {
for (Feed feed : groupsService.acceptedFeeds(group)) {
update(feed);
}
Modified: trunk/src/action/org/jboss/blog/session/update/UpdateManager.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/update/UpdateManager.java 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/src/action/org/jboss/blog/session/update/UpdateManager.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -1,9 +1,12 @@
package org.jboss.blog.session.update;
import org.jboss.seam.ScopeType;
+import org.jboss.seam.faces.FacesMessages;
import org.jboss.seam.annotations.*;
import org.jboss.seam.annotations.Observer;
+import org.jboss.blog.session.configuration.ConfigurationManager;
+import javax.faces.application.FacesMessage;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
@@ -19,22 +22,25 @@
@Name("updateManager")
@Scope(ScopeType.APPLICATION)
public class UpdateManager {
+ @In
+ private ConfigurationManager configurationManager;
+
+ @In
+ private FacesMessages facesMessages;
+
private long lastUpdateStart;
private long lastUpdateEnd;
private AtomicBoolean updateInProgress;
- private int updatesInterval;
-
private List<Exception> globalExceptions;
private Map<String, List<UpdateException>> feedUpdateExceptions;
private ScheduledExecutorService executor;
@Observer("org.jboss.blog.postBlogInit")
+ @Transactional
public void register() {
- updatesInterval = 900;
-
globalExceptions = new ArrayList<Exception>();
feedUpdateExceptions = new LinkedHashMap<String, List<UpdateException>>();
@@ -50,7 +56,7 @@
private void createAndStartExcutor() {
executor = Executors.newScheduledThreadPool(1);
- executor.scheduleAtFixedRate(new UpdateThread(), 10, updatesInterval, TimeUnit.SECONDS);
+ executor.scheduleAtFixedRate(new UpdateThread(), 10, getUpdateInterval(), TimeUnit.SECONDS);
}
public void addFeedUpdateException(String feedName, UpdateException exception) {
@@ -107,14 +113,6 @@
return DateFormat.getDateTimeInstance().format(getLastUpdateStart());
}
- public int getUpdatesInterval() {
- return updatesInterval;
- }
-
- public void setUpdatesInterval(int updatesInterval) {
- this.updatesInterval = updatesInterval;
- }
-
public AtomicBoolean getUpdateInProgress() {
return updateInProgress;
}
@@ -123,6 +121,30 @@
return DateFormat.getDateTimeInstance().format(System.currentTimeMillis());
}
+ public int getUpdateInterval() {
+ return configurationManager.getConfiguration().getUpdateInterval();
+ }
+
+ public void setUpdateInterval(int updateInterval) {
+ configurationManager.getConfiguration().setUpdateInterval(updateInterval);
+ }
+
+ public int getConnectionTimeout() {
+ return configurationManager.getConfiguration().getConnectionTimeout();
+ }
+
+ public void setConnectionTimeout(int connectionTimeout) {
+ configurationManager.getConfiguration().setConnectionTimeout(connectionTimeout);
+ }
+
+ public int getReadTimeout() {
+ return configurationManager.getConfiguration().getReadTimeout();
+ }
+
+ public void setReadTimeout(int readTimeout) {
+ configurationManager.getConfiguration().setReadTimeout(readTimeout);
+ }
+
public String getExceptionStackTrace(Exception e) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintWriter pw = new PrintWriter(baos);
@@ -132,4 +154,9 @@
pw.flush();
return baos.toString();
}
+
+ public void save() {
+ restartUpdateThread();
+ facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.configuration.saved");
+ }
}
Modified: trunk/src/action/org/jboss/blog/session/view/FeedViewBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/view/FeedViewBean.java 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/src/action/org/jboss/blog/session/view/FeedViewBean.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -80,7 +80,7 @@
* @Deprecated
*/
public void fixHtml() {
- for (Group group : feedsService.getAllGroups()) {
+ for (Group group : groupsService.getAllGroups()) {
for (Feed feed : groupsService.acceptedFeeds(group)) {
for (Post post : feed.getPosts()) {
post.setContent(StringTools.fixHtml(post.getContent()));
Added: trunk/src/model/org/jboss/blog/model/configuration/Configuration.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/configuration/Configuration.java (rev 0)
+++ trunk/src/model/org/jboss/blog/model/configuration/Configuration.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -0,0 +1,83 @@
+package org.jboss.blog.model.configuration;
+
+import org.hibernate.validator.NotNull;
+
+import javax.persistence.*;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Entity
+public class Configuration {
+ @Id
+ @GeneratedValue
+ @Column(updatable = false)
+ private Integer id;
+
+ @Column
+ @NotNull
+ private int readTimeout;
+
+ @Column
+ @NotNull
+ private int connectionTimeout;
+
+ @Column
+ @NotNull
+ private int updateInterval;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public int getReadTimeout() {
+ return readTimeout;
+ }
+
+ public void setReadTimeout(int readTimeout) {
+ this.readTimeout = readTimeout;
+ }
+
+ public int getConnectionTimeout() {
+ return connectionTimeout;
+ }
+
+ public void setConnectionTimeout(int connectionTimeout) {
+ this.connectionTimeout = connectionTimeout;
+ }
+
+ public int getUpdateInterval() {
+ return updateInterval;
+ }
+
+ public void setUpdateInterval(int updateInterval) {
+ this.updateInterval = updateInterval;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof Configuration)) return false;
+
+ Configuration that = (Configuration) o;
+
+ if (connectionTimeout != that.connectionTimeout) return false;
+ if (readTimeout != that.readTimeout) return false;
+ if (updateInterval != that.updateInterval) return false;
+ if (id != null ? !id.equals(that.id) : that.id != null) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = (id != null ? id.hashCode() : 0);
+ result = 31 * result + readTimeout;
+ result = 31 * result + connectionTimeout;
+ result = 31 * result + updateInterval;
+ return result;
+ }
+}
Modified: trunk/src/services/org/jboss/blog/service/FeedsService.java
===================================================================
--- trunk/src/services/org/jboss/blog/service/FeedsService.java 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/src/services/org/jboss/blog/service/FeedsService.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -14,8 +14,6 @@
*/
@Local
public interface FeedsService {
- List<Group> getAllGroups();
-
Post getPost(String titleAsId) throws PostNotFoundException;
Feed getFeed(String feedName) throws FeedNotFoundException;
Modified: trunk/src/services/org/jboss/blog/service/GroupsService.java
===================================================================
--- trunk/src/services/org/jboss/blog/service/GroupsService.java 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/src/services/org/jboss/blog/service/GroupsService.java 2008-02-25 09:47:41 UTC (rev 217)
@@ -11,6 +11,8 @@
*/
@Local
public interface GroupsService {
+ List<Group> getAllGroups();
+
List<Feed> acceptedFeeds(Group group);
List<Feed> unacceptedFeeds(Group group);
Modified: trunk/view/home.xhtml
===================================================================
--- trunk/view/home.xhtml 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/view/home.xhtml 2008-02-25 09:47:41 UTC (rev 217)
@@ -30,7 +30,7 @@
</p>
<table cellspacing="5" class="deftable" width="75%">
- <ui:repeat var="group" value="#{feedsService.allGroups}">
+ <ui:repeat var="group" value="#{groupsService.allGroups}">
<s:fragment rendered="#{groupsService.acceptedFeeds(group).size() > 0}">
<tr>
<td class="term" width="15%">#{group.displayName}</td>
Deleted: trunk/view/login.xhtml
===================================================================
--- trunk/view/login.xhtml 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/view/login.xhtml 2008-02-25 09:47:41 UTC (rev 217)
@@ -1,41 +0,0 @@
-<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
- xmlns:s="http://jboss.com/products/seam/taglib"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:rich="http://richfaces.org/rich"
- template="layout/template.xhtml">
- <ui:define name="body">
- <h:form id="login">
-
- <rich:panel>
- <f:facet name="header">Login</f:facet>
-
- <p>Please login using any username and password</p>
-
- <div class="dialog">
- <h:panelGrid columns="2" rowClasses="prop" columnClasses="name,value">
- <h:outputLabel for="username">Username</h:outputLabel>
- <h:inputText id="username"
- value="#{identity.username}"/>
- <h:outputLabel for="password">Password</h:outputLabel>
- <h:inputSecret id="password"
- value="#{identity.password}"/>
- <h:outputLabel for="rememberMe">Remember me</h:outputLabel>
- <h:selectBooleanCheckbox id="rememberMe"
- value="#{identity.rememberMe}"/>
- </h:panelGrid>
- </div>
-
- </rich:panel>
-
- <div class="actionButtons">
- <h:commandButton value="Login" action="#{identity.login}"/>
- </div>
-
- </h:form>
-
- </ui:define>
-</ui:composition>
Deleted: trunk/view/manage/add.xhtml
===================================================================
--- trunk/view/manage/add.xhtml 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/view/manage/add.xhtml 2008-02-25 09:47:41 UTC (rev 217)
@@ -1,29 +0,0 @@
-<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
- xmlns:s="http://jboss.com/products/seam/taglib"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:rich="http://richfaces.org/rich"
- template="../layout/template.xhtml">
- <ui:define name="header">
- Add a new feed
- </ui:define>
-
- <ui:define name="body">
- <div class="adminlist">
- <dl>
- <ui:repeat var="feedType" value="#{feedTypes.allTypes}">
- <dd>
- <s:link value="Add a new #{feedType.name()} feed" view="#{feedType.addPage()}" />
- </dd>
- </ui:repeat>
- </dl>
- </div>
-
- <ul>
-
- </ul>
- </ui:define>
-</ui:composition>
Modified: trunk/view/manage/feed_mod.xhtml
===================================================================
--- trunk/view/manage/feed_mod.xhtml 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/view/manage/feed_mod.xhtml 2008-02-25 09:47:41 UTC (rev 217)
@@ -83,7 +83,7 @@
<h:selectOneMenu id="group" required="true" value="#{feedMod.feed.group}">
<a:support event="onblur" reRender="groupMessage" ajaxSingle="true" bypassUpdates="true"/>
<s:convertEntity />
- <s:selectItems var="group" value="#{feedsService.allGroups}"
+ <s:selectItems var="group" value="#{groupsService.allGroups}"
label="#{group.displayName}" />
</h:selectOneMenu>
Modified: trunk/view/manage/group/group_list.xhtml
===================================================================
--- trunk/view/manage/group/group_list.xhtml 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/view/manage/group/group_list.xhtml 2008-02-25 09:47:41 UTC (rev 217)
@@ -29,7 +29,7 @@
<td class="tableheader" />
</tr>
- <a:repeat var="group" value="#{feedsService.allGroups}" rowKeyVar="rowNumber">
+ <a:repeat var="group" value="#{groupsService.allGroups}" rowKeyVar="rowNumber">
<tr class="#{(rowNumber%2 == 0) ? 'evenRow' : 'oddRow'}">
<td class="rowlinefirst" style="font-weight:bold;">#{group.displayName}</td>
<td class="rowline">#{group.name}</td>
Modified: trunk/view/manage/index.xhtml
===================================================================
--- trunk/view/manage/index.xhtml 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/view/manage/index.xhtml 2008-02-25 09:47:41 UTC (rev 217)
@@ -16,8 +16,17 @@
<dl>
<dt>New feed operations:</dt>
<hr />
- <dd><s:link value="Add new feed" view="/manage/add.xhtml" /></dd>
- <dd><s:link value="Accept feed propositions" view="/manage/proposition/proposition_list.xhtml" /></dd>
+ <s:fragment rendered="#{propositionsCount.pendingPropositions > 0}">
+ <dd>
+ <s:link value="Pending feed propositions (#{propositionsCount.pendingPropositions})"
+ view="/manage/proposition/proposition_list.xhtml" />
+ </dd>
+ </s:fragment>
+ <ui:repeat var="feedType" value="#{feedTypes.allTypes}">
+ <dd>
+ <s:link value="Add a new #{feedType.name()} feed" view="#{feedType.addPage()}" />
+ </dd>
+ </ui:repeat>
<dt>Other operations:</dt>
<hr />
<dd><s:link value="Manage feed groups" view="/manage/group/group_list.xhtml" /></dd>
@@ -42,7 +51,7 @@
<td class="tableheader">Delete the feed</td>
</tr>
- <ui:repeat var="group" value="#{feedsService.allGroups}">
+ <ui:repeat var="group" value="#{groupsService.allGroups}">
<s:fragment rendered="#{groupsService.acceptedFeeds(group).size() > 0}">
<tr>
<td colspan="7" class="categoryRow">#{group.displayName}</td>
Modified: trunk/view/manage/proposition/proposition_list.xhtml
===================================================================
--- trunk/view/manage/proposition/proposition_list.xhtml 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/view/manage/proposition/proposition_list.xhtml 2008-02-25 09:47:41 UTC (rev 217)
@@ -22,7 +22,7 @@
<td class="tableheader">Delete the feed</td>
</tr>
- <ui:repeat var="group" value="#{feedsService.allGroups}">
+ <ui:repeat var="group" value="#{groupsService.allGroups}">
<s:fragment>
<tr>
<td colspan="7" class="categoryRow">#{group.displayName}</td>
Modified: trunk/view/manage/update_manager.xhtml
===================================================================
--- trunk/view/manage/update_manager.xhtml 2008-02-13 08:06:13 UTC (rev 216)
+++ trunk/view/manage/update_manager.xhtml 2008-02-25 09:47:41 UTC (rev 217)
@@ -8,89 +8,119 @@
xmlns:rich="http://richfaces.org/rich"
xmlns:a="http://richfaces.org/a4j"
template="../layout/template.xhtml">
- <ui:define name="header">
- Update manager
- </ui:define>
- <ui:define name="body">
- <h:form>
- <a:poll interval="5000" reRender="mainTable" />
- <a:outputPanel id="mainTable">
- <table cellspacing="5" class="deftable" width="75%">
- <tr>
- <td class="term" width="15%">Last page refresh:</td>
- <td class="def">#{updateManager.now}</td>
- </tr>
- <tr>
- <td class="term" width="15%">Last update start:</td>
- <td class="def">#{updateManager.lastUpdateStartDate}</td>
- </tr>
- <tr>
- <td class="term" width="15%">Last update end:</td>
- <td class="def">#{updateManager.lastUpdateEndDate}</td>
- </tr>
- <tr>
- <td class="term" width="15%">Update in progress:</td>
- <td class="def">#{updateManager.updateInProgress.get()}</td>
- </tr>
- <tr>
- <td class="term" width="15%">Global exceptions:</td>
- <td class="def">
- <s:fragment rendered="#{updateManager.globalExceptions.size() == 0}">
- None
- </s:fragment>
- <s:fragment rendered="#{updateManager.globalExceptions.size() > 0}">
- <ui:repeat var="exception" value="#{updateManager.globalExceptions}">
- #{exception.message} <br />
- </ui:repeat>
- </s:fragment>
- </td>
- </tr>
- <tr>
- <td class="term" width="15%">Feed exceptions:</td>
- <td class="def">
- <s:fragment rendered="#{updateManager.feedUpdateExceptionNames.size() == 0}">
- None
- </s:fragment>
- <s:fragment rendered="#{updateManager.feedUpdateExceptionNames.size() > 0}">
- <ui:repeat var="feedName" value="#{updateManager.feedUpdateExceptionNames}">
- <strong>#{feedName}</strong> <br />
- <ui:repeat var="exception"
- value="#{updateManager.getFeedUpdateExceptionsForFeed(feedName)}">
- <rich:togglePanel id="stackTracePanel" initialState="nothing" switchType="client"
- stateOrder="nothing,stackTrace">
- <f:facet name="nothing">
- <s:fragment>
- #{exception.message}
- </s:fragment>
- </f:facet>
- <f:facet name="stackTrace">
- <s:fragment>
- #{exception.message} <br />
- #{updateManager.getExceptionStackTrace(exception)}
- </s:fragment>
- </f:facet>
- </rich:togglePanel>
- <rich:toggleControl for="stackTracePanel" value="Toggle stack trace"/>
- <br />
- </ui:repeat>
- <br />
- </ui:repeat>
- </s:fragment>
- </td>
- </tr>
- <tr>
- <td class="term" width="15%">Actions:</td>
- <td class="def">
- <h:commandLink action="#{updateManager.clearGlobalExceptions}"
- value="Clear global exceptions" /><br />
- <h:commandLink action="#{updateManager.clearFeedsExceptions}"
- value="Clear feeds exceptions"/><br />
- <h:commandLink action="#{updateManager.restartUpdateThread}"
- value="Restart the update thread"/><br />
- </td>
- </tr>
- </table>
- </a:outputPanel>
- </h:form>
- </ui:define>
+<ui:define name="header">
+ Update manager
+</ui:define>
+<ui:define name="body">
+<h:form>
+ <a:poll interval="5000" reRender="mainTable" />
+ <a:outputPanel id="mainTable">
+ <table cellspacing="5" class="deftable" width="75%">
+ <tr>
+ <td class="term" width="15%">Last page refresh:</td>
+ <td class="def">#{updateManager.now}</td>
+ </tr>
+ <tr>
+ <td class="term" width="15%">Last update start:</td>
+ <td class="def">#{updateManager.lastUpdateStartDate}</td>
+ </tr>
+ <tr>
+ <td class="term" width="15%">Last update end:</td>
+ <td class="def">#{updateManager.lastUpdateEndDate}</td>
+ </tr>
+ <tr>
+ <td class="term" width="15%">Update in progress:</td>
+ <td class="def">#{updateManager.updateInProgress.get()}</td>
+ </tr>
+ <tr>
+ <td class="term" width="15%">Global exceptions:</td>
+ <td class="def">
+ <s:fragment rendered="#{updateManager.globalExceptions.size() == 0}">
+ None
+ </s:fragment>
+ <s:fragment rendered="#{updateManager.globalExceptions.size() > 0}">
+ <ui:repeat var="exception" value="#{updateManager.globalExceptions}">
+ #{exception.message} <br />
+ </ui:repeat>
+ </s:fragment>
+ </td>
+ </tr>
+ <tr>
+ <td class="term" width="15%">Feed exceptions:</td>
+ <td class="def">
+ <s:fragment rendered="#{updateManager.feedUpdateExceptionNames.size() == 0}">
+ None
+ </s:fragment>
+ <s:fragment rendered="#{updateManager.feedUpdateExceptionNames.size() > 0}">
+ <ui:repeat var="feedName" value="#{updateManager.feedUpdateExceptionNames}">
+ <strong>#{feedName}</strong> <br />
+ <ui:repeat var="exception"
+ value="#{updateManager.getFeedUpdateExceptionsForFeed(feedName)}">
+ <rich:togglePanel id="stackTracePanel" initialState="nothing" switchType="client"
+ stateOrder="nothing,stackTrace">
+ <f:facet name="nothing">
+ <s:fragment>
+ #{exception.message}
+ </s:fragment>
+ </f:facet>
+ <f:facet name="stackTrace">
+ <s:fragment>
+ #{exception.message} <br />
+ #{updateManager.getExceptionStackTrace(exception)}
+ </s:fragment>
+ </f:facet>
+ </rich:togglePanel>
+ <rich:toggleControl for="stackTracePanel" value="Toggle stack trace"/>
+ <br />
+ </ui:repeat>
+ <br />
+ </ui:repeat>
+ </s:fragment>
+ </td>
+ </tr>
+ <tr>
+ <td class="term" width="15%">Actions:</td>
+ <td class="def">
+ <h:commandLink action="#{updateManager.clearGlobalExceptions}"
+ value="Clear global exceptions" /><br />
+ <h:commandLink action="#{updateManager.clearFeedsExceptions}"
+ value="Clear feeds exceptions"/><br />
+ <h:commandLink action="#{updateManager.restartUpdateThread}"
+ value="Restart the update thread"/><br />
+ </td>
+ </tr>
+ </table>
+ <div class="formbuttons" />
+ </a:outputPanel>
+</h:form>
+<h:form>
+ <table cellspacing="5" class="deftable" width="75%">
+ <tr>
+ <td class="term" width="15%">Updates interval (in seconds):</td>
+ <td class="def">
+ <h:inputText value="#{updateManager.updateInterval}"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="term" width="15%">Remote feed read timeout (in milliseconds):</td>
+ <td class="def">
+ <h:inputText value="#{updateManager.readTimeout}"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="term" width="15%">Remote feed connection timeout (in milliseconds):</td>
+ <td class="def">
+ <h:inputText value="#{updateManager.connectionTimeout}"/>
+ </td>
+ </tr>
+ </table>
+ <div class="formbuttons">
+ <ul>
+ <li>
+ <h:commandButton value="Save changes" action="#{updateManager.save}" styleClass="submit" />
+ </li>
+ </ul>
+ </div>
+</h:form>
+</ui:define>
</ui:composition>
More information about the jboss-cvs-commits
mailing list