(no commit message)
[utils] / test / enterprise / src / main / java / org / wamblee / test / cdi / BeanManagerSetup.java
1 /*
2  * Copyright 2005-2010 the original author or authors.
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * 
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  * 
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.wamblee.test.cdi;
17
18 import javax.enterprise.inject.spi.BeanManager;
19
20 import org.jboss.weld.environment.se.Weld;
21 import org.jboss.weld.environment.se.WeldContainer;
22
23 /**
24  * Simple wrapper class for creating a bean manager in a Java SE environment 
25  * This class wraps an existing implementation of CDI. 
26  * 
27  * @author Erik Brakkee
28  */
29 public class BeanManagerSetup {
30
31     private Weld weld;
32     private WeldContainer container;
33     private BeanManager beanManager;
34
35     /**
36      * Constructs the setup class.
37      */
38     public BeanManagerSetup() {
39         // Empty
40     }
41
42     /**
43      * Must be called to initialize the bean manager. 
44      */
45     public void initialize() {
46         weld = new Weld();
47         container = weld.initialize();
48         beanManager = container.getBeanManager();
49     }
50
51     /**
52      * Gets the bean manager. Should only be called after {@link #initialize()}
53      * @return Bean manager. 
54      */
55     public BeanManager getBeanManager() {
56         return beanManager;
57     }
58
59     /**
60      * Cleans up the bean manager. 
61      */
62     public void shutdown() {
63         weld.shutdown();
64         weld = null;
65         container = null;
66         beanManager = null;
67     }
68 }