deltaspike-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Struberg <strub...@yahoo.de>
Subject Re: proposal for JSF Messages
Date Sun, 07 Oct 2012 11:12:57 GMT
Btw, the discussion is in DELTASPIKE-278 DELTASPIKE-277 and on the list 3 days ago
http://markmail.org/thread/pnv2kipdd5bmzxzw

Happy to get better ideas on that.

LieGrue,
strub





----- Original Message -----
> From: Gerhard Petracek <gerhard.petracek@gmail.com>
> To: deltaspike-dev@incubator.apache.org
> Cc: 
> Sent: Sunday, October 7, 2012 1:01 PM
> Subject: Re: proposal for JSF Messages
> 
> @ "We already found an easy solution.":
> 
> can't be, because this discussion wasn't even near to be finished.
> 
> @"This part is already implemented.":
> 
> i saw it - to say it differently: -1 to category as a string
> (back then that was also part of the discussion about the bv constraint
> payload.)
> 
> regards,
> gerhard
> 
> 
> 
> 2012/10/7 Mark Struberg <struberg@yahoo.de>
> 
>>  Hi Gerhard!
>> 
>>  We already found an easy solution.
>> 
>>  I removed the restriction that @MessageBundles are only allowed to return
>>  a Message if they have a MessageContext parameter. I found no reason to
>>  restrict that.
>> 
>>  If a user returns a Message intead of a String then we will use the
>>  categories 'summary' and 'detail' for creating the 
> FacesMessage. Both fall
>>  back to the default value in their property files if they don't have a
>>  .summary or .detail entry in that language. If a String is being returned
>>  we use it for both summary and detail Strings.
>> 
>>  This part is already implemented. I'm currently working on the Proxy 
> for
>>  creating the JsfMessage<YourMessage> part.
>> 
>>  LieGrue,
>>  strub
>> 
>> 
>> 
>> 
>>  ----- Original Message -----
>>  > From: Gerhard Petracek <gerhard.petracek@gmail.com>
>>  > To: deltaspike-dev@incubator.apache.org
>>  > Cc:
>>  > Sent: Sunday, October 7, 2012 12:37 PM
>>  > Subject: Re: proposal for JSF Messages
>>  >
>>  > i would skip the #getCategory part for now. it's very similar to 
> the
>>  > type-safe message-payload used in codi and those parts are quite 
> special
>>  > already.
>>  >
>>  > regards,
>>  > gerhard
>>  >
>>  >
>>  >
>>  > 2012/10/6 Mark Struberg <struberg@yahoo.de>
>>  >
>>  >>  I agree with Christian. From a developer perspective you will 
> just use
>>  >>  some abstract "{PAGEX_USER_NOT_ALLOWED}" and define the
>>  > parameters. The
>>  >>  developer usually doesn't care about the exact wording anyway 
> ;)
>>  >>
>>  >>  For the 3.) I think you should just use 2 different message 
> template
>>  >>  identifiers.
>>  >>
>>  >>  LieGrue,
>>  >>  strub
>>  >>
>>  >>
>>  >>
>>  >>
>>  >>  ----- Original Message -----
>>  >>  > From: Christian Kaltepoth <christian@kaltepoth.de>
>>  >>  > To: deltaspike-dev@incubator.apache.org
>>  >>  > Cc: Mark Struberg <struberg@yahoo.de>
>>  >>  > Sent: Saturday, October 6, 2012 11:42 AM
>>  >>  > Subject: Re: proposal for JSF Messages
>>  >>  >
>>  >>  > Hey Bernard,
>>  >>  >
>>  >>  > I think the user shouldn't actually care about 1) and 
> 2). IMHO the
>>  > main
>>  >>  > point is to hide these details from the actual business 
> code. In your
>>  >>  code
>>  >>  > you just say "send message X to the user". If 
> summary and
>>  > details are
>>  >>  > the
>>  >>  > same or not shouldn't be relevant at this point.
>>  >>  >
>>  >>  > Just my feelings regarding this. :)
>>  >>  >
>>  >>  > Christian
>>  >>  >
>>  >>  >
>>  >>  > 2012/10/6 Bernard Łabno <s4237@pjwstk.edu.pl>
>>  >>  >
>>  >>  >>  Mark,
>>  >>  >>
>>  >>  >>  As I've cited
>>  >>  >>  hello_you = Hello You
>>  >>  >>  hello_you.detail = Good evening Ladies and Gentlemen!
>>  >>  >>
>>  >>  >>  Imagine i'm user. Now i have such questions:
>>  >>  >>  1) Does msg.addError().userNotAllowed(loggedInUser) set 
> summary
>>  > or
>>  >>  details?
>>  >>  >>  2) Hm i've set summary, how do I set details? The 
> API
>>  > doesn't tell
>>  >>  > me this,
>>  >>  >>  I have to reference some manuals to learn how to set 
> details.
>>  >>  >>  3) What if (in one case in entire app) I want to set 
> summary with
>>  > key
>>  >>  >>  {hello_you} and details from {goodbye_you}? In the rest 
> of app I
>>  > could
>>  >>  use
>>  >>  >>  approach as you've proposed, but this once i want 
> to do
>>  > custom?
>>  >>  >>
>>  >>  >>  Please, do not take this as criticism, it's just my 
> gut
>>  > feeling.
>>  >>  >>
>>  >>  >>  2012/10/6 Mark Struberg <struberg@yahoo.de>
>>  >>  >>
>>  >>  >>  > Hi Bernard!
>>  >>  >>  >
>>  >>  >>  > which part of it do you consider as magic?
>>  >>  >>  >
>>  >>  >>  > I think the Message.getCategory(String) is fine 
> (feel free
>>  > to suggest
>>  >>  > a
>>  >>  >>  > better name for the method)
>>  >>  >>  > A category is just a different resource pattern 
> for the same
>>  >>  > parameters.
>>  >>  >>  > Like short text and long text of the same message.
>>  >>  >>  >
>>  >>  >>  > Imagine a user makes
>>  >>  >>  >
>>  >>  >>  > @Inject JsfMessage<MyCheckMessages> msg;
>>  >>  >>  >
>>  >>  >>  >
>>  >>  >>  > msg.addError().userNotAllowed(loggedInUser);
>>  >>  >>  >
>>  >>  >>  > which would automatically use the property without 
> as
>>  > fallback and
>>  >>  the
>>  >>  >>  > categories 'summary' and 'detail' 
> for
>>  > creating the
>>  >>  > FacesMessage.
>>  >>  >>  > Those 2 categories are of course a contract of the
>>  > JsfMessage
>>  >>  >>  > implementation.
>>  >>  >>  >
>>  >>  >>  >
>>  >>  >>  > But even for non JSF messages it would make sense.
>>  >>  >>  >
>>  >>  >>  > @Inject MyCheckMessages msg;
>>  >>  >>  >
>>  >>  >>  >
>>  > msg.userNotAllowed(loggedInUser).getCategory('shortText');
>>  >>  >>  >
>>  >>  >>  > The category String should be a well documented 
> final static
>>  > String
>>  >>  >>  > somewhere of course.
>>  >>  >>  >
>>  >>  >>  > LieGrue,
>>  >>  >>  > strub
>>  >>  >>  >
>>  >>  >>  >
>>  >>  >>  >
>>  >>  >>  >
>>  >>  >>  >
>>  >>  >>  >
>>  >>  >>  > >________________________________
>>  >>  >>  > > From: Bernard Łabno 
> <s4237@pjwstk.edu.pl>
>>  >>  >>  > >To: deltaspike-dev@incubator.apache.org; Mark 
> Struberg
>>  > <
>>  >>  >>  struberg@yahoo.de
>>  >>  >>  > >
>>  >>  >>  > >Sent: Saturday, October 6, 2012 8:49 AM
>>  >>  >>  > >Subject: Re: proposal for JSF Messages
>>  >>  >>  > >
>>  >>  >>  > >
>>  >>  >>  > >Mark,
>>  >>  >>  > >
>>  >>  >>  > >Most of ideas are great, but I think that 
> following will
>>  > be
>>  >>  > considered
>>  >>  >>  as
>>  >>  >>  > "magic" (too magic) by users.
>>  >>  >>  > >
>>  >>  >>  > >
>>  >>  >>  > >for a "{hello_you}" you can have 
> entries in
>>  > your
>>  >>  > properties file
>>  >>  >>  > >>
>>  >>  >>  > >>hello_you = Hello You
>>  >>  >>  > >>hello_you.detail = Good evening Ladies and
>>  > Gentlemen!
>>  >>  >>  > >>
>>  >>  >>  > >
>>  >>  >>  > >
>>  >>  >>  > >2012/10/5 Mark Struberg 
> <struberg@yahoo.de>
>>  >>  >>  > >
>>  >>  >>  > >Yes, that was the final idea.
>>  >>  >>  > >>
>>  >>  >>  > >>I originally thought about extending the
>>  > @MessageBundle and
>>  >>  > let the
>>  >>  >>  > interface optionally return a String[]. But I 
> think this is
>>  > too
>>  >>  > complex
>>  >>  >>  to
>>  >>  >>  > get right
>>  >>  >>  > >>
>>  >>  >>  > >>Instead I'd rather introduce a
>>  >>  >>  > >>Message#toString(String category); and
>>  >>  >>  > >>
>>  >>  >>  > >>Message#toString(MessageContext context, 
> String
>>  > category);
>>  >>  >>  > >>
>>  >>  >>  > >>for a "{hello_you}" you can have 
> entries
>>  > in your
>>  >>  > properties file
>>  >>  >>  > >>
>>  >>  >>  > >>hello_you = Hello You
>>  >>  >>  > >>hello_you.detail = Good evening Ladies and
>>  > Gentlemen!
>>  >>  >>  > >>
>>  >>  >>  > >>
>>  >>  >>  > >>If a user just returns a String in his 
> interface,
>>  > then both
>>  >>  > detail and
>>  >>  >>  > summary will be set with the same text
>>  >>  >>  > >>If a user returns a Message, then we can 
> look
>>  > deeper.
>>  >>  >>  > >>
>>  >>  >>  > >>LieGrue,
>>  >>  >>  > >>strub
>>  >>  >>  > >>
>>  >>  >>  > >>
>>  >>  >>  > >>
>>  >>  >>  > >>
>>  >>  >>  > >>----- Original Message -----
>>  >>  >>  > >>> From: Gerhard Petracek
>>  > <gerhard.petracek@gmail.com>
>>  >>  >>  > >>> To: 
> deltaspike-dev@incubator.apache.org
>>  >>  >>  > >>> Cc:
>>  >>  >>  > >>> Sent: Friday, October 5, 2012 9:57 PM
>>  >>  >>  > >>> Subject: Re: proposal for JSF 
> Messages
>>  >>  >>  > >>>
>>  >>  >>  > >>>t he example provided by mark could 
> add a global
>>  > message
>>  >>  > with the same
>>  >>  >>  > >>
>>  >>  >>  > >>> summary- and detail-message.
>>  >>  >>  > >>> -> we just need those methods with
>>  > additional
>>  >>  > parameters.
>>  >>  >>  > >>>
>>  >>  >>  > >>> regards,
>>  >>  >>  > >>> gerhard
>>  >>  >>  > >>>
>>  >>  >>  > >>>
>>  >>  >>  > >>>
>>  >>  >>  > >>> 2012/10/5 Ken Finnigan
>>  > <ken@kenfinnigan.me>
>>  >>  >>  > >>>
>>  >>  >>  > >>>>  Some additional plans for 
> messages that
>>  > may be
>>  >>  > relevant to JSF have
>>  >>  >>  > been
>>  >>  >>  > >>>>  documented in [1].
>>  >>  >>  > >>>>
>>  >>  >>  > >>>>  In Seam 3 International we had 
> some ideas
>>  > around
>>  >>  > targeting a
>>  >>  >>  message
>>  >>  >>  > at a
>>  >>  >>  > >>>>  specific component which are 
> noted here
>>  > [2].
>>  >>  >>  > >>>>
>>  >>  >>  > >>>>  Ken
>>  >>  >>  > >>>>
>>  >>  >>  > >>>>  [1]
>>  >>  >>  > >>>>
>>  >>  >>  > >>>>
>>  >>  >>  > >>>
>>  >>  >>  >
>>  >>  >>
>>  >>  >
>>  >>
>>  >
>> 
> https://cwiki.apache.org/confluence/display/DeltaSpike/Message+Module+Drafts
>>  >>  >>  > >>>>  [2]
>>  >>  >>  > >>>>
>>  >>  >>  > >>>>
>>  >>  >>  > >>>
>>  >>  >>  >
>>  >>  >>
>>  >>  >
>>  >>
>>  >
>> 
> https://issues.jboss.org/browse/SEAMINTL-7?focusedCommentId=12562378&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-12562378
>>  >>  >>  > >>>>
>>  >>  >>  > >>>>  On Fri, Oct 5, 2012 at 3:18 PM, 
> Gerhard
>>  > Petracek
>>  >>  > <
>>  >>  >>  > >>>>  gerhard.petracek@gmail.com
>>  >>  >>  > >>>>  > wrote:
>>  >>  >>  > >>>>
>>  >>  >>  > >>>>  > hi jason,
>>  >>  >>  > >>>>  >
>>  >>  >>  > >>>>  > that's for sure just a 
> first
>>  > idea.
>>  >>  >>  > >>>>  > e.g. we also need the 
> possibility to
>>  > add
>>  >>  > messages for a specific
>>  >>  >>  > >>>>  component.
>>  >>  >>  > >>>>  >
>>  >>  >>  > >>>>  > regards,
>>  >>  >>  > >>>>  > gerhard
>>  >>  >>  > >>>>  >
>>  >>  >>  > >>>>  >
>>  >>  >>  > >>>>  >
>>  >>  >>  > >>>>  > 2012/10/5 Jason Porter
>>  >>  > <lightguard.jp@gmail.com>
>>  >>  >>  > >>>>  >
>>  >>  >>  > >>>>  > > On Fri, Oct 5, 2012 at 
> 11:24 AM,
>>  > Mark
>>  >>  > Struberg
>>  >>  >>  > >>> <struberg@yahoo.de>
>>  >>  >>  > >>>>  > wrote:
>>  >>  >>  > >>>>  > >
>>  >>  >>  > >>>>  > > > Hi folks!
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > > I thought quite 
> some time
>>  > about how
>>  >>  > we could do the typesafe
>>  >>  >>  > >>> messging
>>  >>  >>  > >>>>  > for
>>  >>  >>  > >>>>  > > > JSF. Today I had 
> the
>>  > following idea.
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > > Imagine a 
> typesafe message
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > > @MessageBundle
>>  >>  >>  > >>>>  > > > public interface
>>  > SimpleMessage
>>  >>  >>  > >>>>  > > > {
>>  >>  >>  > >>>>  > > >
>>  > @MessageTemplate("Welcome to
>>  >>  > %s")
>>  >>  >>  > >>>>  > > >     Message
>>  > welcomeTo(String name);
>>  >>  >>  > >>>>  > > > }
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > > This is nice but 
> it's
>>  > hard to use
>>  >>  > it for creating
>>  >>  >>  > >>> FacesMessages that
>>  >>  >>  > >>>>  > way.
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > > Now imagine the 
> following
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > > @Inject
>>  >>  >>  > >>>>  > > >
>>  > JsfMessage<SimpleMessge>
>>  >>  > message;
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > > ...
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > >
>>  >>  > message.addInfo().welcomeTo("DeltaSpike);
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > > public interface
>>  > JsfMessage<T>
>>  >>  > {
>>  >>  >>  > >>>>  > > >   T addInfo();
>>  >>  >>  > >>>>  > > >   T addWarning();
>>  >>  >>  > >>>>  > > >   T addError();
>>  >>  >>  > >>>>  > > >   void clear();
>>  >>  >>  > >>>>  > > > }
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > > I think it is 
> possible to
>>  > implement
>>  >>  > this, right?
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > > Wdyt from a users
>>  > perspective?
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > > LieGrue,
>>  >>  >>  > >>>>  > > > strub
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > >
>>  >>  >>  > >>>>  > > This looks like a 
> great start.
>>  > In IRC we
>>  >>  > discovered we need to
>>  >>  >>  > >>>>  determine
>>  >>  >>  > >>>>  > if
>>  >>  >>  > >>>>  > > the text goes to the 
> summary or
>>  > detail. We
>>  >>  > already have the
>>  >>  >>  > >>> severity
>>  >>  >>  > >>>>  with
>>  >>  >>  > >>>>  > > the methods. I'd 
> suggest
>>  > having each
>>  >>  > of those methods take an
>>  >>  >>  > >>> enum
>>  >>  >>  > >>>>  > (DETAIL,
>>  >>  >>  > >>>>  > > SUMMARY, BOTH or 
> similar). One
>>  > drawback I
>>  >>  > see about this is you
>>  >>  >>  > >>> can't
>>  >>  >>  > >>>>  > > define a different 
> message for
>>  > the detail
>>  >>  > and the summary on
>>  >>  >>  one
>>  >>  >>  > >>> line,
>>  >>  >>  > >>>>  > but
>>  >>  >>  > >>>>  > > that may not be the 
> end of the
>>  > world.
>>  >>  >>  > >>>>  > >
>>  >>  >>  > >>>>  > > --
>>  >>  >>  > >>>>  > > Jason Porter
>>  >>  >>  > >>>>  > >
>>  > http://lightguard-jp.blogspot.com
>>  >>  >>  > >>>>  > > 
> http://twitter.com/lightguardjp
>>  >>  >>  > >>>>  > >
>>  >>  >>  > >>>>  > > Software Engineer
>>  >>  >>  > >>>>  > > Open Source Advocate
>>  >>  >>  > >>>>  > > Author of Seam Catch - 
> Next
>>  > Generation
>>  >>  > Java Exception Handling
>>  >>  >>  > >>>>  > >
>>  >>  >>  > >>>>  > > PGP key id: 926CCFF5
>>  >>  >>  > >>>>  > > PGP key available at:
>>  > keyserver.net,
>>  >>  > pgp.mit.edu
>>  >>  >>  > >>>>  > >
>>  >>  >>  > >>>>  >
>>  >>  >>  > >>>>
>>  >>  >>  > >>>
>>  >>  >>  > >>
>>  >>  >>  > >
>>  >>  >>  > >
>>  >>  >>  > >
>>  >>  >>  >
>>  >>  >>
>>  >>  >
>>  >>  >
>>  >>  >
>>  >>  > --
>>  >>  > Christian Kaltepoth
>>  >>  > Blog: http://chkal.blogspot.com/
>>  >>  > Twitter: http://twitter.com/chkal
>>  >>  >
>>  >>
>>  >
>> 
> 

Mime
View raw message