Esempio n. 1
0
  public static ClassReader readClass(Class<?> theClass)
      throws IOException, BenignClassReadException {
    if (theClass.isArray()) {
      throw new BenignClassReadException(theClass.getName() + " is an array");
    }
    if (Proxy.isProxyClass(theClass)) {
      throw new BenignClassReadException(theClass.getName() + " is a Proxy class");
    }
    if (isRMIStubOrProxy(theClass)) {
      throw new BenignClassReadException(theClass.getName() + " is an RMI Stub or Proxy class");
    }
    if (theClass.getName().startsWith("sun.reflect.")) {
      throw new BenignClassReadException(theClass.getName() + " is a reflection class");
    }
    if (isJAXBClass(theClass)) {
      throw new BenignClassReadException(theClass.getName() + " is a JAXB accessor class");
    }
    if ((theClass.getProtectionDomain().getCodeSource() != null)
        && (theClass.getProtectionDomain().getCodeSource().getLocation() == null)) {
      throw new BenignClassReadException(theClass.getName() + " is a generated class");
    }
    URL resource = getClassResource(theClass.getClassLoader(), Type.getInternalName(theClass));
    if (resource == null) {
      ClassReader reader =
          ServiceFactory.getClassTransformerService()
              .getContextManager()
              .getClassWeaverService()
              .getClassReader(theClass);

      if (reader != null) {
        return reader;
      }
    }
    return getClassReaderFromResource(theClass.getName(), resource);
  }
Esempio n. 2
0
 public static URL getClassResource(ClassLoader loader, Type type) {
   return getClassResource(loader, type.getInternalName());
 }
Esempio n. 3
0
 public static String getClassResourceName(Class<?> clazz) {
   return getClassResourceName(Type.getInternalName(clazz));
 }