You'd still have to recompile all code to take advantage of that.

http://java.sun.com/docs/books/jls/second_edition/html/binaryComp.doc.html#45139

This does speak to a design pattern that we did not use in JSF,
but probably should have:  avoid defining public final constants;
if at all possible, turn them into methods or non-constants, e.g.,
something like:

  public static final char SEPARATOR_CHAR = getSeparatorChar();

  private static final char getSeparatorChar() { return ':'; }

... would have been a more flexible approach.  Ah well...

-- Adam


On 4/20/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
>
> > This was specifically discussed on the EG;  a problem
> > is that NamingContainer.SEPARATOR_CHAR is a static String
> > constant, so there's no way to introduce an API to set it
> > without breaking backwards compatibility - any code that
> > referred to SEPARATOR_CHAR would have to be changed
> > to point at a new API, or break.
>
> What about:
>
> public interface NamingContainer
> {
>     public static final char SEPARATOR_CHAR =
> System.getProperty("javax.faces.SEPARATOR_CHAR", ":").charAt(0);
> }
>
> Then to override the value, you just have to provide a value for the system
> property javax.faces.SEPARATOR_CHAR, for example:
>
> -Djavax.faces.SEPARATOR_CHAR=!
>
> --
> Colin Sharples
>
>
> CAUTION - This message may contain privileged and confidential information 
> intended only for the use of the addressee named above. If you are not the 
> intended recipient of this message you are hereby  notified that any use, 
> dissemination, distribution or reproduction  of this message is prohibited. 
> If you have received this message in  error please notify Bank of New Zealand 
> immediately.  Any views expressed in this message are those of the individual 
>  sender and may not necessarily reflect the views of Bank of New Zealand.
>

Reply via email to