Пример #1
0
  private Class<?> loadBeanClass() {
    if (beanClass == null) {
      String className = beanInfo.getClassName();
      Class<?> clazz = loadClass(className);
      ApplicationAssociate associate = ApplicationAssociate.getCurrentInstance();

      if (!associate.isDevModeEnabled()) {
        beanClass = clazz;
      }

      // validate the bean class is public and has a public
      // no-arg ctor
      int classModifiers = clazz.getModifiers();
      if (!Modifier.isPublic(classModifiers)) {
        String message =
            MessageUtils.getExceptionMessageString(
                MessageUtils.MANAGED_BEAN_CLASS_IS_NOT_PUBLIC_ERROR_ID,
                className,
                beanInfo.getName());
        queueMessage(message);
      }
      if (Modifier.isInterface(classModifiers) || Modifier.isAbstract(classModifiers)) {
        String message =
            MessageUtils.getExceptionMessageString(
                MessageUtils.MANAGED_BEAN_CLASS_IS_ABSTRACT_ERROR_ID,
                className,
                beanInfo.getName());
        queueMessage(message);
      }

      try {
        Constructor ctor = clazz.getConstructor(RIConstants.EMPTY_CLASS_ARGS);
        if (!Modifier.isPublic(ctor.getModifiers())) {
          String message =
              MessageUtils.getExceptionMessageString(
                  MessageUtils.MANAGED_BEAN_CLASS_NO_PUBLIC_NOARG_CTOR_ERROR_ID,
                  className,
                  beanInfo.getName());
          queueMessage(message);
        }
      } catch (NoSuchMethodException nsme) {
        String message =
            MessageUtils.getExceptionMessageString(
                MessageUtils.MANAGED_BEAN_CLASS_NO_PUBLIC_NOARG_CTOR_ERROR_ID,
                className,
                beanInfo.getName());
        queueMessage(message);
      }

      if (!hasMessages()) {
        // class is ok, scan for annotations
        this.isInjectible = scanForAnnotations(clazz);
      }
      return clazz;
    }
    return beanClass;
  }
Пример #2
0
 protected Class loadClass(String className) {
   Class valueType = String.class;
   if (null != className && 0 < className.length()) {
     if (className.equals(Boolean.TYPE.getName())) {
       valueType = Boolean.TYPE;
     } else if (className.equals(Byte.TYPE.getName())) {
       valueType = Byte.TYPE;
     } else if (className.equals(Double.TYPE.getName())) {
       valueType = Double.TYPE;
     } else if (className.equals(Float.TYPE.getName())) {
       valueType = Float.TYPE;
     } else if (className.equals(Integer.TYPE.getName())) {
       valueType = Integer.TYPE;
     } else if (className.equals(Character.TYPE.getName())) {
       valueType = Character.TYPE;
     } else if (className.equals(Short.TYPE.getName())) {
       valueType = Short.TYPE;
     } else if (className.equals(Long.TYPE.getName())) {
       valueType = Long.TYPE;
     } else {
       try {
         valueType = Util.loadClass(className, this);
       } catch (ClassNotFoundException cnfe) {
         String message =
             MessageUtils.getExceptionMessageString(
                 MessageUtils.MANAGED_BEAN_CLASS_NOT_FOUND_ERROR_ID,
                 className,
                 beanInfo.getName());
         throw new ManagedBeanPreProcessingException(message, cnfe);
       } catch (NoClassDefFoundError ncdfe) {
         String message =
             MessageUtils.getExceptionMessageString(
                 MessageUtils.MANAGED_BEAN_CLASS_DEPENDENCY_NOT_FOUND_ERROR_ID,
                 className,
                 beanInfo.getName(),
                 ncdfe.getMessage());
         throw new ManagedBeanPreProcessingException(message, ncdfe);
       }
     }
   }
   return valueType;
 }
Пример #3
0
 private void initScope() {
   String scope = beanInfo.getScope();
   if ("request".equals(scope)) {
     this.scope = ELUtils.Scope.REQUEST;
   } else if ("session".equals(scope)) {
     this.scope = ELUtils.Scope.SESSION;
   } else if ("application".equals(scope)) {
     this.scope = ELUtils.Scope.APPLICATION;
   } else if ("none".equals(scope)) {
     this.scope = ELUtils.Scope.NONE;
   }
 }
Пример #4
0
  protected void invokePostConstruct(Object bean, InjectionProvider injectionProvider) {

    if (isInjectible) {
      try {
        injectionProvider.invokePostConstruct(bean);
      } catch (InjectionProviderException ipe) {
        String message =
            MessageUtils.getExceptionMessageString(
                MessageUtils.MANAGED_BEAN_INJECTION_ERROR_ID, beanInfo.getName());
        throw new ManagedBeanCreationException(message, ipe);
      }
    }
  }
Пример #5
0
  public Map<String, String> getDescriptions() {

    return beanInfo.getDescriptions();
  }