Mercurial > lada > lada-server
diff src/main/java/de/intevation/utils/Resources.java @ 10:eb093385ff7e
Added Resources.java. This file is important as it make the EntitManager
available through @Inject in other classes.
author | Torsten Irländer <torsten.irlaender@intevation.de> |
---|---|
date | Thu, 18 Apr 2013 16:03:10 +0200 |
parents | |
children | ad22a59aa5d7 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/intevation/utils/Resources.java Thu Apr 18 16:03:10 2013 +0200 @@ -0,0 +1,58 @@ +/* + * JBoss, Home of Professional Open Source + * Copyright 2012, Red Hat, Inc. and/or its affiliates, and individual + * contributors by the @authors tag. See the copyright.txt in the + * distribution for a full listing of individual contributors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jboss.as.quickstarts.kitchensink.util; + +import java.util.logging.Logger; + +import javax.enterprise.context.RequestScoped; +import javax.enterprise.inject.Produces; +import javax.enterprise.inject.spi.InjectionPoint; +import javax.faces.context.FacesContext; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +/** + * 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 { + // use @SuppressWarnings to tell IDE to ignore warnings about field not being referenced directly + @SuppressWarnings("unused") + @Produces + @PersistenceContext + private EntityManager em; + + @Produces + public Logger produceLog(InjectionPoint injectionPoint) { + return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); + } + + @Produces + @RequestScoped + public FacesContext produceFacesContext() { + return FacesContext.getCurrentInstance(); + } + +}