[jboss-cvs] jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action ...
Christian Bauer
christian at hibernate.org
Fri Jul 6 10:38:36 EDT 2007
User: cbauer
Date: 07/07/06 10:38:36
Modified: examples/wiki/src/main/org/jboss/seam/wiki/core/action
UserHome.java NodeHome.java NodeHistory.java
AdminHome.java Menu.java NodeBrowser.java
DocumentHome.java
Log:
Compiles and runs on latest Seam CVS
Revision Changes Path
1.13 +0 -2 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/UserHome.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UserHome.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/UserHome.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- UserHome.java 26 Jun 2007 22:47:52 -0000 1.12
+++ UserHome.java 6 Jul 2007 14:38:36 -0000 1.13
@@ -9,14 +9,12 @@
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.faces.FacesMessages;
import org.jboss.seam.faces.Renderer;
-import org.jboss.seam.core.Events;
import org.jboss.seam.framework.EntityHome;
import org.jboss.seam.security.AuthorizationException;
import org.jboss.seam.security.Identity;
import org.jboss.seam.wiki.core.action.prefs.UserManagementPreferences;
import org.jboss.seam.wiki.core.action.prefs.WikiPreferences;
import org.jboss.seam.wiki.core.dao.UserDAO;
-import org.jboss.seam.wiki.core.dao.UserRoleAccessFactory;
import org.jboss.seam.wiki.core.model.Role;
import org.jboss.seam.wiki.core.model.User;
import org.jboss.seam.wiki.preferences.PreferenceComponent;
1.19 +8 -3 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/NodeHome.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: NodeHome.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/NodeHome.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- NodeHome.java 25 Jun 2007 23:32:04 -0000 1.18
+++ NodeHome.java 6 Jul 2007 14:38:36 -0000 1.19
@@ -11,8 +11,8 @@
import org.jboss.seam.wiki.util.WikiUtil;
import org.jboss.seam.wiki.preferences.PreferenceProvider;
import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.web.RequestParameter;
import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.web.RequestParameter;
import org.jboss.seam.annotations.security.Restrict;
import org.jboss.seam.core.Events;
import org.jboss.seam.ScopeType;
@@ -52,10 +52,12 @@
/* -------------------------- Request Wiring ------------------------------ */
// Required 'Edit' request parameter
- @RequestParameter private Long nodeId;
+ @RequestParameter
+ private Long nodeId;
// Required 'Edit' and 'Create' request parameter
- @RequestParameter private Long parentDirId;
+ @RequestParameter
+ private Long parentDirId;
/* -------------------------- Internal State ------------------------------ */
@@ -109,6 +111,9 @@
// when the wiki root is edited... it can only be update()ed anyway, all the other code is null-safe.
parentDirectory = nodeDAO.findDirectory(parentDirId);
+ if (parentDirectory == null)
+ throw new RuntimeException("############ REPRODUCE THIS BUG ####################");
+
// Permission checks
if (!isManaged() && !Identity.instance().hasPermission("Node", "create", getParentDirectory()) ) {
throw new AuthorizationException("You don't have permission for this operation");
1.6 +12 -9 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/NodeHistory.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: NodeHistory.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/NodeHistory.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- NodeHistory.java 20 Jun 2007 01:30:36 -0000 1.5
+++ NodeHistory.java 6 Jul 2007 14:38:36 -0000 1.6
@@ -8,14 +8,15 @@
import org.jboss.seam.Component;
import org.jboss.seam.security.Identity;
import org.jboss.seam.security.AuthorizationException;
-import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.faces.FacesMessages;
import org.jboss.seam.wiki.core.dao.NodeDAO;
import org.jboss.seam.wiki.core.model.Node;
import org.jboss.seam.wiki.core.model.Document;
+import org.jboss.seam.wiki.core.model.Directory;
import org.jboss.seam.wiki.core.engine.WikiLink;
import org.jboss.seam.wiki.core.engine.WikiTextParser;
import org.jboss.seam.wiki.core.engine.WikiTextRenderer;
+import org.jboss.seam.wiki.core.engine.WikiLinkResolver;
import org.jboss.seam.wiki.util.Diff;
import javax.faces.application.FacesMessage;
@@ -71,13 +72,9 @@
public void diff() {
- // Wiki text parser needs these context variables but we don't really care because link resolving is turned off
- Contexts.getConversationContext().set("currentDocument", currentNode);
- Contexts.getConversationContext().set("currentDirectory", currentNode.getParent());
- String revision = renderWikiText( ((Document)currentNode).getContent() );
- Contexts.getConversationContext().set("currentDocument", selectedHistoricalNode);
- Contexts.getConversationContext().set("currentDirectory", currentNode.getParent());
- String original = renderWikiText( ((Document)selectedHistoricalNode).getContent() );
+ // Wiki text parser needs these nodes but we don't really care because links are not rendered and resolved
+ String revision = renderWikiText( (Document)currentNode, (Directory)currentNode.getParent(), ((Document)currentNode).getContent() );
+ String original = renderWikiText( (Document)selectedHistoricalNode, (Directory)currentNode.getParent(), ((Document)selectedHistoricalNode).getContent() );
// Create diff by comparing rendered HTML
Diff diff = new Diff() {
@@ -125,9 +122,15 @@
return diffResult;
}
- private String renderWikiText(String wikiText) {
+ private String renderWikiText(Document currentDocument, Directory currentDirectory, String wikiText) {
// Render the document to HTML for diff, don't resolve any wiki links (calls renderInlineLink() plain)
WikiTextParser parser = new WikiTextParser(wikiText, true, false);
+
+ parser.setCurrentDocument(currentDocument);
+ parser.setCurrentDirectory(currentDirectory);
+
+ parser.setResolver((WikiLinkResolver)Component.getInstance("wikiLinkResolver"));
+
// This renderer is really just ignoring everything and renders a few placeholders
parser.setRenderer(
new WikiTextRenderer() {
1.7 +2 -2 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/AdminHome.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: AdminHome.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/AdminHome.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- AdminHome.java 26 Jun 2007 22:47:52 -0000 1.6
+++ AdminHome.java 6 Jul 2007 14:38:36 -0000 1.7
@@ -5,6 +5,7 @@
import org.hibernate.Session;
import org.hibernate.search.store.DirectoryProvider;
import org.hibernate.search.util.ContextHelper;
+import org.hibernate.search.FullTextSession;
import org.hibernate.validator.ClassValidator;
import org.hibernate.validator.InvalidValue;
import org.jboss.seam.Component;
@@ -157,10 +158,9 @@
indexedEntities = registry.getSearchableEntities();
EntityManager em = (EntityManager) Component.getInstance("entityManager");
- Session session = (Session) em.getDelegate();
for (SearchableEntity indexedEntity : indexedEntities) {
- DirectoryProvider dirProvider = ContextHelper.getSearchFactory(session).getDirectoryProvider(indexedEntity.getClazz());
+ DirectoryProvider dirProvider = ((FullTextSession)em.getDelegate()).getSearchFactory().getDirectoryProvider(indexedEntity.getClazz());
IndexReader reader = IndexReader.open(dirProvider.getDirectory());
indexedEntity.setNumOfIndexedDocuments(reader.numDocs());
1.7 +15 -3 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/Menu.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Menu.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/Menu.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- Menu.java 27 Apr 2007 10:34:08 -0000 1.6
+++ Menu.java 6 Jul 2007 14:38:36 -0000 1.7
@@ -15,7 +15,7 @@
/**
* Holds the nodes that are displayed in the site menu
* <p>
- * For performance reasons we cache this in the session contet and refresh it through observing of
+ * For performance reasons we cache this in the session context and refresh it through observing of
* modification events. This might be PAGE scoped once we have a nested set model for the node tree.
* </p>
*
@@ -25,6 +25,10 @@
@Scope(ScopeType.SESSION)
public class Menu implements Serializable {
+ @In(required = false)
+ Directory menuBase;
+ Directory lastMenuBase;
+
private List<MenuItem> items;
public List<MenuItem> getItems() {
if (items == null) refreshMenuItems();
@@ -43,8 +47,16 @@
@Observer("Nodes.menuStructureModified")
public void refreshMenuItems() {
items = new ArrayList<MenuItem>();
- for(Node area : ((Directory)Component.getInstance("restrictedWikiRoot")).getChildren())
- addNodesToMenuTree(items, 0, area);
+ if (menuBase != null && lastMenuBase != menuBase) {
+ lastMenuBase = menuBase;
+ } else {
+ menuBase = (Directory)Component.getInstance("restrictedWikiRoot");
+ }
+ for(Node child: menuBase.getChildren())
+ addNodesToMenuTree(items, 0, child);
+
+
+
}
// Recursive
1.18 +7 -3 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/NodeBrowser.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: NodeBrowser.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/NodeBrowser.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- NodeBrowser.java 26 Jun 2007 22:47:52 -0000 1.17
+++ NodeBrowser.java 6 Jul 2007 14:38:36 -0000 1.18
@@ -136,23 +136,27 @@
ConversationEntry entryPoint =
(ConversationEntry)Contexts.getConversationContext().get("conversationEntryPoint");
if (entryPoint != null) {
- log.debug("entry-point of this conversation has been another conversation");
+ log.debug("entry-point of this conversation (" + currentConversation.getId() + ") has been another conversation");
if (entryPoint.isDisplayable()) {
// Get messages for propagation
FacesMessages messages = (FacesMessages)Component.getInstance("facesMessages");
- log.debug("switching to entry-point conversation");
+ log.debug("switching to entry-point conversation: " + entryPoint.getId());
FacesManager.instance().switchConversation(entryPoint.getId());
log.debug("propagating faces messages from the ended conversation into the destination conversation");
Contexts.getConversationContext().set("org.jboss.seam.faces.facesMessages", messages);
+
+ log.debug("switching to last view in previous conversation");
+ Conversation.instance().redirect();
+
} else {
log.debug("the entry-point of this conversation is gone, redirecting to wiki start page");
FacesManager.instance().redirect("/display.xhtml", new HashMap<String,Object>(), true);
}
} else {
- log.debug("entry-point of this conversation has been a non-conversational page we remembered");
+ log.debug("entry-point of this conversation (" + currentConversation.getId() + ") has been a non-conversational page we remembered");
if (endBeforeRedirect) {
log.debug("redirecting to last browsed page without propagating the ended conversation");
redirectToLastBrowsedPage();
1.17 +5 -3 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/DocumentHome.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DocumentHome.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/DocumentHome.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- DocumentHome.java 21 Jun 2007 11:05:49 -0000 1.16
+++ DocumentHome.java 6 Jul 2007 14:38:36 -0000 1.17
@@ -42,7 +42,7 @@
getInstance().rollback(selectedHistoricalNode);
}
- // Wiki text parser and others needs it
+ // Wiki text parser and plugins need this
Contexts.getConversationContext().set("currentDocument", getInstance());
Contexts.getConversationContext().set("currentDirectory", getParentDirectory());
@@ -84,8 +84,10 @@
// Update feed entries
if (getInstance().getReadAccessLevel() == UserRoleAccessFactory.GUESTROLE_ACCESSLEVEL) {
- feedDAO.updateFeedEntry(isPushOnSiteFeed(), getInstance());
- feedDAO.purgeOldFeedEntries(); // TODO: Move this into maintenance thread to run periodically
+ feedDAO.updateFeedEntry(getInstance(), isPushOnSiteFeed());
+ feedDAO.purgeOldFeedEntries();
+ // Feeds should not be removed by a maintenance thread: If there
+ // is no activity on the site, feeds shouldn't be empty but show the last updates.
}
// Write history log and prepare a new copy for further modification
More information about the jboss-cvs-commits
mailing list