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

Gavin King gavin.king at jboss.com
Sun Jul 8 17:13:37 EDT 2007


  User: gavin   
  Date: 07/07/08 17:13:37

  Modified:    src/main/org/jboss/seam/international    LocaleSelector.java
                        Messages.java ResourceBundle.java
  Log:
  use @Factory instead of @Unwrap where that makes more sense
  
  Revision  Changes    Path
  1.4       +2 -2      jboss-seam/src/main/org/jboss/seam/international/LocaleSelector.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: LocaleSelector.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/international/LocaleSelector.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- LocaleSelector.java	20 Jun 2007 17:45:56 -0000	1.3
  +++ LocaleSelector.java	8 Jul 2007 21:13:37 -0000	1.4
  @@ -65,8 +65,8 @@
      public void select()
      {
         FacesContext.getCurrentInstance().getViewRoot().setLocale( getLocale() );
  -      Contexts.removeFromAllContexts( Seam.getComponentName(ResourceBundle.class) );
  -      Contexts.removeFromAllContexts( Seam.getComponentName(Messages.class) );
  +      Contexts.removeFromAllContexts("org.jboss.seam.core.resourcebundle");
  +      Contexts.removeFromAllContexts("org.jboss.seam.international.messages");
         
         setCookieValueIfEnabled( getLocaleString() );
   
  
  
  
  1.6       +29 -17    jboss-seam/src/main/org/jboss/seam/international/Messages.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Messages.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/international/Messages.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- Messages.java	8 Jul 2007 11:23:08 -0000	1.5
  +++ Messages.java	8 Jul 2007 21:13:37 -0000	1.6
  @@ -1,8 +1,8 @@
   package org.jboss.seam.international;
   
  +import static org.jboss.seam.ScopeType.EVENT;
   import static org.jboss.seam.annotations.Install.BUILT_IN;
   
  -import java.io.Serializable;
   import java.util.AbstractMap;
   import java.util.Enumeration;
   import java.util.HashMap;
  @@ -12,33 +12,33 @@
   
   import org.jboss.seam.Component;
   import org.jboss.seam.ScopeType;
  +import org.jboss.seam.annotations.Factory;
   import org.jboss.seam.annotations.Install;
   import org.jboss.seam.annotations.Name;
   import org.jboss.seam.annotations.Scope;
  -import org.jboss.seam.annotations.Unwrap;
   import org.jboss.seam.annotations.intercept.BypassInterceptors;
  +import org.jboss.seam.contexts.Contexts;
   import org.jboss.seam.core.Interpolator;
   
   /**
  - * Access to interpolated messages via a Map
  + * Factory for a Map that interpolates messages defined in the
  + * Seam ResourceBundle.
  + * 
  + * @see org.jboss.seam.core.ResourceBundle
    * 
    * @author Gavin King
    */
  - at Scope(ScopeType.EVENT)
  + at Scope(ScopeType.STATELESS)
   @BypassInterceptors
  - at Name("org.jboss.seam.international.messages")
  + at Name("org.jboss.seam.international.messagesFactory")
   @Install(precedence=BUILT_IN)
  -public class Messages implements Serializable 
  +public class Messages
   {
      //TODO: now we have ELResolver, it doesn't *have* to be a Map...
      
  -   private static final long serialVersionUID = 1292464253307553295L;
  -   
  -   private transient Map<String, String> messages;
  -   
  -   private void init() 
  +   protected Map createMap() 
      {  
  -      messages = new AbstractMap<String, String>()
  +      return new AbstractMap<String, String>()
         {
            private java.util.ResourceBundle bundle = ResourceBundle.instance();
   
  @@ -86,15 +86,27 @@
         };
      }
   
  -   @Unwrap
  +   /**
  +    * Create the Map and cache it in the EVENT scope. No need to cache
  +    * it in the SESSION scope, since it is inexpensive to create.
  +    * 
  +    * @return a Map that interpolates messages in the Seam ResourceBundle
  +    */
  +   @Factory(value="org.jboss.seam.international.messages", autoCreate=true, scope=EVENT)
      public Map<String, String> getMessages()
      {
  -      if (messages==null) init();
  -      return messages;
  +      return createMap();
      }
      
  +   /**
  +    * @return the message Map instance
  +    */
      public static Map<String, String> instance()
      {
  -      return (Map<String, String>) Component.getInstance(Messages.class, true );
  +      if ( !Contexts.isSessionContextActive() )
  +      {
  +         throw new IllegalStateException("no event context active");
  +      }
  +      return (Map<String, String>) Component.getInstance("org.jboss.seam.international.messages", true);
      }
   }
  
  
  
  1.5       +1 -1      jboss-seam/src/main/org/jboss/seam/international/ResourceBundle.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ResourceBundle.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/international/ResourceBundle.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- ResourceBundle.java	8 Jul 2007 11:23:08 -0000	1.4
  +++ ResourceBundle.java	8 Jul 2007 21:13:37 -0000	1.5
  @@ -15,7 +15,7 @@
    */
   @Scope(ScopeType.SESSION)
   @BypassInterceptors
  - at Name("org.jboss.seam.core.resourceBundle")
  + at Name("org.jboss.seam.core.resourceBundleFactory")
   @Install(precedence=FRAMEWORK, dependencies="org.jboss.seam.international.locale")
   public class ResourceBundle extends org.jboss.seam.core.ResourceBundle
   {
  
  
  



More information about the jboss-cvs-commits mailing list