0 Replies Latest reply on Dec 16, 2009 4:17 PM by alin.heyoulin.qq.com

    How can i inject customer resource such as spring bean?

    alin.heyoulin.qq.com
      In openwebbeans i can inject customer resource using OpenWebBeansPlugin.
      
      eg:
      
      public void startUp()
          throws WebBeansConfigurationException
        {
              try
          {
            webApplicationContext = createContextLoader(servletContext);
            servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, webApplicationContext);
            startupContextLoader(webApplicationContext);
          }
          catch (Exception e)
          {
            servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, e);
            e.printStackTrace();
          }
        }
      
        public void shutDown()
          throws WebBeansConfigurationException
        {
          if ((webApplicationContext != null) && (webApplicationContext instanceof ConfigurableWebApplicationContext))
            ((ConfigurableWebApplicationContext)webApplicationContext).close();
        }
      
          public Object injectResource(Type type, Annotation[] annotations)
        {
          if (!(isResource(annotations)))
          {
            return null;
          }
      
          Annotation annot = AnnotationUtil.getAnnotation(annotations, SpringBean.class);
          if (annot != null)
          {
            SpringBean pu = (SpringBean)annot;
            String springName = pu.value();
      
            return webApplicationContext.getBean(springName);
          }
      
          return null;
        }
      
        public boolean isResourceAnnotation(Class<? extends Annotation> clazz)
        {
          Asserts.assertNotNull(clazz, "clazz parameter can not be null");
          XMLAnnotationTypeManager manager = XMLAnnotationTypeManager.getInstance();
          if (manager.hasResource(clazz))
          {
            return true;
          }
      
          return (clazz.equals(SpringBean.class));
        }
      
      
      In weld how can i do this?