@mark: you can ask the person who did it for myfaces codi (see [1]) :) regards, gerhard
[1] http://svn.apache.org/viewvc?view=revision&revision=929170 2012/1/23 Mark Struberg <[email protected]> > +1 > > But why do we need the manual setBeanManager public at all? > I'll go on and make it protected. > > LieGrue, > strub > > > > ----- Original Message ----- > > From: Gerhard Petracek <[email protected]> > > To: [email protected] > > Cc: > > Sent: Monday, January 23, 2012 7:56 AM > > Subject: Re: [DISCUSS] BeanManagerProvider API > > > > hi christian, > > > > thx for moving this discussion to the mailing list! > > > > actually you don't have to check it because it would fail earlier. > > due to the basic mechanism you would see an IllegalStateException in > > #getInstance, if the cdi implementation isn't configured correctly (this > > topic is related to an upcoming discussion). > > > > the only case i can see right now would be caused by a manual call of > > #setBeanManager which resets it. > > -> imo we have to decide if we allow such a manual call. > > > > in general we should also discuss if we re-use existing exception types > (if > > it makes sense) or if we create our own types. > > > > regards, > > gerhard > > > > > > > > 2012/1/23 Christian Kaltepoth <[email protected]> > > > >> Hey @all, > >> > >> yesterday I had a deeper look at the BeanManagerProvider > >> implementation and found something that could be improved. I created > >> DELTASPIKE-56 (see [1]) for this but it turned out that we should > >> discuss this topic on the mailing list. > >> > >> I saw that getBeanManager() may return null in some rare > >> circumstances. Unfortunately this forces everyone calling this method > >> to check the result for null. I think most code calling the method > >> absolutely requires the BeanManager and cannot proceed without it. > >> > >> My first idea was to add another method getRequiredBeanManager() that > >> doesn't return null if the BeanManager is not available but instead > >> throws a meaningful runtime exception. That's what Solder does per > >> default. Calling Solder's BeanManagerLocator.getBeanManager() without > >> a BeanManager being available will result in a > >> BeanManagerUnavailableException (see [2]). > >> > >> However Mark suggested that throwing an exception should be the > >> default behavior. I for myself like Mark's idea. > >> > >> What do you think? > >> > >> Christian > >> > >> [1] https://issues.apache.org/jira/browse/DELTASPIKE-56 > >> [2] > >> > > > https://github.com/seam/solder/blob/master/api/src/main/java/org/jboss/solder/beanManager/BeanManagerLocator.java#L82 > >> > >> -- > >> Christian Kaltepoth > >> Blog: http://chkal.blogspot.com/ > >> Twitter: http://twitter.com/chkal > >> > > >
