Coverage Report - org.apache.myfaces.cdi.impl.CDIAnnotationInjectionProvider
 
Classes in this File Line Coverage Branch Coverage Complexity
CDIAnnotationInjectionProvider
0%
0/18
0%
0/2
1.25
 
 1  
 /*
 2  
  * Licensed to the Apache Software Foundation (ASF) under one
 3  
  * or more contributor license agreements.  See the NOTICE file
 4  
  * distributed with this work for additional information
 5  
  * regarding copyright ownership.  The ASF licenses this file
 6  
  * to you under the Apache License, Version 2.0 (the
 7  
  * "License"); you may not use this file except in compliance
 8  
  * with the License.  You may obtain a copy of the License at
 9  
  *
 10  
  *   http://www.apache.org/licenses/LICENSE-2.0
 11  
  *
 12  
  * Unless required by applicable law or agreed to in writing,
 13  
  * software distributed under the License is distributed on an
 14  
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 15  
  * KIND, either express or implied.  See the License for the
 16  
  * specific language governing permissions and limitations
 17  
  * under the License.
 18  
  */
 19  
 package org.apache.myfaces.cdi.impl;
 20  
 
 21  
 import org.apache.myfaces.cdi.util.CDIUtils;
 22  
 import org.apache.myfaces.spi.InjectionProvider;
 23  
 import org.apache.myfaces.spi.InjectionProviderException;
 24  
 
 25  
 import javax.enterprise.context.spi.CreationalContext;
 26  
 import javax.enterprise.inject.spi.AnnotatedType;
 27  
 import javax.enterprise.inject.spi.BeanManager;
 28  
 import javax.enterprise.inject.spi.InjectionTarget;
 29  
 import javax.faces.context.ExternalContext;
 30  
 
 31  
 /**
 32  
  *
 33  
  * @author Leonardo Uribe
 34  
  */
 35  
 public class CDIAnnotationInjectionProvider extends InjectionProvider
 36  
 {
 37  
     private BeanManager beanManager;
 38  
 
 39  
     public CDIAnnotationInjectionProvider(ExternalContext externalContext)
 40  0
     {
 41  0
         beanManager = CDIUtils.getBeanManager(externalContext);
 42  0
     }
 43  
 
 44  
     @Override
 45  
     public Object inject(Object instance) throws InjectionProviderException
 46  
     {
 47  0
         AnnotatedType annoType = beanManager.createAnnotatedType(instance.getClass());
 48  0
         InjectionTarget target = beanManager.createInjectionTarget(annoType);
 49  0
         CreationalContext<?> creationalContext =  beanManager.createCreationalContext(null);
 50  
 
 51  0
         target.inject(instance, creationalContext);
 52  
 
 53  0
         return creationalContext;
 54  
     }
 55  
 
 56  
     @Override
 57  
     public void postConstruct(Object instance, Object creationMetaData) throws InjectionProviderException
 58  
     {
 59  0
         AnnotatedType annoType = beanManager.createAnnotatedType(instance.getClass());
 60  0
         InjectionTarget target = beanManager.createInjectionTarget(annoType);
 61  0
         target.postConstruct(instance);
 62  0
     }
 63  
 
 64  
     @Override
 65  
     public void preDestroy(Object instance, Object creationMetaData) throws InjectionProviderException
 66  
     {
 67  0
         if (creationMetaData instanceof CreationalContext)
 68  
         {
 69  0
             AnnotatedType annoType = beanManager.createAnnotatedType(instance.getClass());
 70  0
             InjectionTarget target = beanManager.createInjectionTarget(annoType);
 71  0
             target.preDestroy(instance);
 72  
 
 73  0
             ((CreationalContext)creationMetaData).release();
 74  
         }
 75  0
     }
 76  
 }