[jboss-cvs] jboss-seam/src/main/org/jboss/seam/core ...

Gavin King gavin.king at jboss.com
Sat Feb 3 20:13:19 EST 2007


  User: gavin   
  Date: 07/02/03 20:13:19

  Modified:    src/main/org/jboss/seam/core      Exceptions.java
                        HttpError.java Interpolator.java Manager.java
  Added:       src/main/org/jboss/seam/core      RedirectException.java
  Log:
  redesigned exception handling
  
  Revision  Changes    Path
  1.24      +10 -19    jboss-seam/src/main/org/jboss/seam/core/Exceptions.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Exceptions.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Exceptions.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -b -r1.23 -r1.24
  --- Exceptions.java	2 Feb 2007 07:44:31 -0000	1.23
  +++ Exceptions.java	4 Feb 2007 01:13:19 -0000	1.24
  @@ -7,7 +7,6 @@
   import java.util.ArrayList;
   import java.util.List;
   
  -
   import org.dom4j.Element;
   import org.jboss.seam.Component;
   import org.jboss.seam.ScopeType;
  @@ -17,14 +16,12 @@
   import org.jboss.seam.annotations.Name;
   import org.jboss.seam.annotations.Scope;
   import org.jboss.seam.contexts.Contexts;
  +import org.jboss.seam.exceptions.AnnotationErrorHandler;
  +import org.jboss.seam.exceptions.AnnotationRedirectHandler;
   import org.jboss.seam.exceptions.ConfigErrorHandler;
   import org.jboss.seam.exceptions.ConfigRedirectHandler;
  -import org.jboss.seam.exceptions.ConfigRenderHandler;
   import org.jboss.seam.exceptions.DebugPageHandler;
  -import org.jboss.seam.exceptions.AnnotationErrorHandler;
   import org.jboss.seam.exceptions.ExceptionHandler;
  -import org.jboss.seam.exceptions.AnnotationRedirectHandler;
  -import org.jboss.seam.exceptions.AnnotationRenderHandler;
   import org.jboss.seam.log.LogProvider;
   import org.jboss.seam.log.Logging;
   import org.jboss.seam.util.EJB;
  @@ -49,7 +46,7 @@
      
      private List<ExceptionHandler> exceptionHandlers = new ArrayList<ExceptionHandler>();
      
  -   public Object handle(Exception e) throws Exception
  +   public void handle(Exception e) throws Exception
      {
         //build a list of the nested exceptions
         List<Exception> causes = new ArrayList<Exception>();
  @@ -66,7 +63,8 @@
               Exception cause = causes.get(i);
               if ( eh.isHandler(cause) )
               {
  -               return eh.handle(cause);
  +               eh.handle(cause);
  +               return;
               }
            }
         }
  @@ -78,12 +76,14 @@
      @Create
      public void initialize() throws Exception 
      {
  -      InputStream stream = Resources.getResourceAsStream("/WEB-INF/exceptions.xml"); //deprecated
  -      if (stream==null) stream = Resources.getResourceAsStream("/WEB-INF/pages.xml");
  +      String fileName = "/WEB-INF/exceptions.xml";
  +      InputStream stream = Resources.getResourceAsStream(fileName); //deprecated
  +      fileName = "/WEB-INF/pages.xml";
  +      if (stream==null) stream = Resources.getResourceAsStream(fileName);
         ExceptionHandler anyhandler = null;
         if (stream!=null)
         {
  -         log.info("reading exceptions.xml");
  +         log.info("reading exception mappings from " + fileName);
            List<Element> elements = XML.getRootElement(stream).elements("exception");
            for (final Element exception: elements)
            {
  @@ -100,7 +100,6 @@
            }
         }
         
  -      exceptionHandlers.add( new AnnotationRenderHandler() );
         exceptionHandlers.add( new AnnotationRedirectHandler() );
         exceptionHandlers.add( new AnnotationErrorHandler() );
         if ( Init.instance().isDebug() ) 
  @@ -116,14 +115,6 @@
         final boolean endConversation = exception.elementIterator("end-conversation").hasNext();
         final boolean rollback = exception.elementIterator("rollback").hasNext();
   
  -      Element render = exception.element("render");
  -      if (render!=null)
  -      {
  -         final String viewId = render.attributeValue("view-id");
  -         final String message = render.getTextTrim();
  -         return new ConfigRenderHandler(message, viewId, clazz, rollback, endConversation);
  -      }
  -      
         Element redirect = exception.element("redirect");
         if (redirect!=null)
         {
  
  
  
  1.4       +2 -2      jboss-seam/src/main/org/jboss/seam/core/HttpError.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: HttpError.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/HttpError.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- HttpError.java	24 Nov 2006 23:15:17 -0000	1.3
  +++ HttpError.java	4 Feb 2007 01:13:19 -0000	1.4
  @@ -1,4 +1,4 @@
  -//$Id: HttpError.java,v 1.3 2006/11/24 23:15:17 gavin Exp $
  +//$Id: HttpError.java,v 1.4 2007/02/04 01:13:19 gavin Exp $
   package org.jboss.seam.core;
   
   import static org.jboss.seam.InterceptionType.NEVER;
  @@ -71,7 +71,7 @@
         {
            throw new IllegalStateException("No active application scope");
         }
  -      return (HttpError) Component.getInstance(HttpError.class, true);
  +      return (HttpError) Component.getInstance(HttpError.class, ScopeType.APPLICATION);
      }
      
   }
  
  
  
  1.19      +21 -9     jboss-seam/src/main/org/jboss/seam/core/Interpolator.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Interpolator.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Interpolator.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -b -r1.18 -r1.19
  --- Interpolator.java	1 Feb 2007 19:58:07 -0000	1.18
  +++ Interpolator.java	4 Feb 2007 01:13:19 -0000	1.19
  @@ -10,6 +10,7 @@
   import org.jboss.seam.log.LogProvider;
   import org.jboss.seam.log.Logging;
   import org.jboss.seam.Component;
  +import org.jboss.seam.ScopeType;
   import org.jboss.seam.annotations.Install;
   import org.jboss.seam.annotations.Intercept;
   import org.jboss.seam.annotations.Name;
  @@ -25,7 +26,8 @@
   @Scope(STATELESS)
   @Name("org.jboss.seam.core.interpolator")
   @Install(precedence=BUILT_IN)
  -public class Interpolator {
  +public class Interpolator 
  +{
   
      private static final LogProvider log = Logging.getLogProvider(Interpolator.class);
      
  @@ -33,7 +35,7 @@
      {
         if ( Contexts.isApplicationContextActive() )
         {
  -         return (Interpolator) Component.getInstance(Interpolator.class, true);         
  +         return (Interpolator) Component.getInstance(Interpolator.class, ScopeType.APPLICATION);         
         }
         else
         {
  @@ -60,7 +62,8 @@
            throw new IllegalArgumentException("more than 10 parameters");
         }
   
  -      if (string.indexOf('#')>=0 || string.indexOf('{')>=0) {
  +      if (string.indexOf('#')>=0 || string.indexOf('{')>=0) 
  +      {
             string = interpolateExpressions(string, params);
         }
   
  @@ -112,19 +115,25 @@
                     builder.append("#").append(nextTok);
                  }
               }
  -         } else if ("{".equals(tok)) {
  +         } 
  +         else if ("{".equals(tok)) 
  +         {
                StringBuilder expr = new StringBuilder();
                
                expr.append(tok);
                int level = 1;
   
  -             while (tokens.hasMoreTokens()) {
  +             while (tokens.hasMoreTokens()) 
  +             {
                    String nextTok = tokens.nextToken();
                    expr.append(nextTok);
                    
  -                 if (nextTok.equals("{")) {
  +                 if (nextTok.equals("{")) 
  +                 {
                        ++level;
  -                 } else if (nextTok.equals("}")) {
  +                 } 
  +                 else if (nextTok.equals("}")) 
  +                 {
                        if (--level == 0) {
                            String value = new MessageFormat(expr.toString(), Locale.instance()).format(params);
                            builder.append(value);
  @@ -135,10 +144,13 @@
                    }
                } 
   
  -             if (expr != null) {
  +             if (expr != null) 
  +             {
                    builder.append(expr);
                }
  -         } else {
  +         } 
  +         else 
  +         {
               builder.append(tok);
            }
         }
  
  
  
  1.135     +2 -2      jboss-seam/src/main/org/jboss/seam/core/Manager.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Manager.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Manager.java,v
  retrieving revision 1.134
  retrieving revision 1.135
  diff -u -b -r1.134 -r1.135
  --- Manager.java	26 Jan 2007 14:53:28 -0000	1.134
  +++ Manager.java	4 Feb 2007 01:13:19 -0000	1.135
  @@ -41,7 +41,7 @@
    *
    * @author Gavin King
    * @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
  - * @version $Revision: 1.134 $
  + * @version $Revision: 1.135 $
    */
   @Scope(ScopeType.EVENT)
   @Name("org.jboss.seam.core.manager")
  @@ -954,7 +954,7 @@
         }
         catch (IOException ioe)
         {
  -         throw new RuntimeException("could not redirect to: " + url, ioe);
  +         throw new RedirectException(ioe);
         }
         finally
         {
  
  
  
  1.1      date: 2007/02/04 01:13:19;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/core/RedirectException.java
  
  Index: RedirectException.java
  ===================================================================
  package org.jboss.seam.core;
  
  import java.io.IOException;
  
  public class RedirectException extends RuntimeException
  {
  
     public RedirectException(IOException ioe)
     {
        super(ioe);
     }
     
  }
  
  
  



More information about the jboss-cvs-commits mailing list