View Javadoc

1   package com.atlassian.asap.it;
2   
3   import com.sun.jersey.core.spi.component.ComponentContext;
4   import com.sun.jersey.core.spi.component.ComponentScope;
5   import com.sun.jersey.core.spi.component.ioc.IoCComponentProvider;
6   import com.sun.jersey.core.spi.component.ioc.IoCComponentProviderFactory;
7   import com.sun.jersey.core.spi.component.ioc.IoCFullyManagedComponentProvider;
8   
9   import java.util.Map;
10  
11  /**
12   * Utility class to create IoCComponentProviderFactory instances.
13   */
14  public final class JerseyTestUtil {
15  
16      private JerseyTestUtil() {
17          // only static methods
18      }
19  
20      /**
21       * @param injectables map of injectable instances
22       * @return an instance if IoCComponentProviderFactory which injects objects in injectables Map
23       */
24      public static IoCComponentProviderFactory ioCProviderFactoryfromMap(final Map<Class, Object> injectables) {
25          IoCComponentProviderFactory ioCComponentProviderFactory = new IoCComponentProviderFactory() {
26              @Override
27              public IoCComponentProvider getComponentProvider(Class<?> c) {
28                  if (injectables.containsKey(c)) {
29                      return wrap(injectables.get(c));
30                  }
31  
32                  return null;
33              }
34  
35              @Override
36              public IoCComponentProvider getComponentProvider(ComponentContext cc, Class<?> c) {
37                  return getComponentProvider(c);
38              }
39  
40              private IoCComponentProvider wrap(final Object instance) {
41                  return new IoCFullyManagedComponentProvider() {
42                      @Override
43                      public Object getInstance() {
44                          return instance;
45                      }
46  
47                      @Override
48                      public ComponentScope getScope() {
49                          return ComponentScope.Singleton;
50                      }
51                  };
52              }
53          };
54  
55          return ioCComponentProviderFactory;
56      }
57  }