/* Yougi is a web application conceived to manage user groups or
 * communities focused on a certain domain of knowledge, whose members are
 * constantly sharing information and participating in social and educational
 * events. Copyright (C) 2011 Hildeberto Mendonça.
 *
 * This application is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published by the
 * Free Software Foundation; either version 2.1 of the License, or (at your
 * option) any later version.
 *
 * This application is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
 * License for more details.
 *
 * There is a full copy of the GNU Lesser General Public License along with
 * this library. Look for the file license.txt at the root level. If you do not
 * find it, write to the Free Software Foundation, Inc., 59 Temple Place,
 * Suite 330, Boston, MA 02111-1307 USA.
 * */
package org.cejug.yougi.util;


import org.cejug.yougi.business.UserAccountBean;
import org.cejug.yougi.entity.UserAccount;
import org.cejug.yougi.qualifier.UserName;

import javax.enterprise.inject.Produces;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.http.HttpServletRequest;

/**
 * @author Daniel Cunha - danielsoro@gmail.com
 */
public class ProducesUtil {

    @Inject
    private UserAccountBean userAccountBean;

    @Produces @Named @UserName
    public String getUserName() {
        HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        return request.getRemoteUser();
    }

    @Produces @Named
    public String getFirstName() {
        String username = getUserName();
        UserAccount userAccount = userAccountBean.findByUsername(username);
        return userAccount == null ? "" : userAccount.getFirstName();
    }
}

@@ -1237,16 +1237,63 @@
 rName;%0A%0A
+import javax.enterprise.context.RequestScoped;%0A
 import j
@@ -1610,16 +1610,198 @@
 tBean;%0A%0A
+    @Inject%0A    private FacesContext facesContext;%0A%0A    @Produces @RequestScoped%0A    public FacesContext getFacesContext() %7B%0A        return FacesContext.getCurrentInstance();%0A    %7D%0A%0A
     @Pro
@@ -1915,17 +1915,17 @@
 equest) 
-F
+f
 acesCont
@@ -1932,29 +1932,8 @@
 ext.
-getCurrentInstance().
 getE

Create a FaceContext produces