package com.gr.project.util; import org.picketlink.annotations.PicketLink; import javax.enterprise.inject.Produces; import javax.enterprise.inject.spi.InjectionPoint; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import java.util.logging.Logger; /** * This class uses CDI to alias Java EE resources, such as the persistence context, to CDI beans * * <p> * Example injection on a managed bean field: * </p> * * <pre> * @Inject * private EntityManager em; * </pre> */ public class Resources { /** * Alias the persistence context */ // use @SuppressWarnings to tell IDE to ignore warnings about field not being referenced directly @Produces @PersistenceContext private EntityManager em; @PersistenceContext @Produces @PicketLink private EntityManager entityManager; /** * Provider injectable loggers based around Java Util Logging. * @param injectionPoint * @return */ @Produces public Logger produceLog(InjectionPoint injectionPoint) { return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); } }