[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