/maven-amps-plugin/src/main/java/com/atlassian/maven/plugins/amps/util/ClassUtils.java

https://bitbucket.org/mmeinhold/amps · Java · 60 lines · 53 code · 7 blank · 0 comment · 1 complexity · 1ae6aa064c0bff0bc7f59ddd32091214 MD5 · raw file

  1. package com.atlassian.maven.plugins.amps.util;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.IOException;
  6. import org.apache.commons.io.IOUtils;
  7. import org.apache.commons.lang.StringUtils;
  8. import org.apache.commons.io.FileUtils;
  9. import org.objectweb.asm.ClassReader;
  10. public class ClassUtils
  11. {
  12. public static String getClassnameFromFile(File classFile, String removePrefix)
  13. {
  14. String regex = "/";
  15. if(OSUtils.OS.equals(OSUtils.OS.WINDOWS))
  16. {
  17. regex = "\\\\";
  18. }
  19. return StringUtils.removeEnd(
  20. StringUtils.removeStart(
  21. StringUtils.removeStart(
  22. classFile.getAbsolutePath(), removePrefix)
  23. .replaceAll(regex, ".")
  24. , ".")
  25. , ".class");
  26. }
  27. public static boolean isWiredPluginTestClass(File classFile)
  28. {
  29. FileInputStream fis = null;
  30. boolean isWiredClass = false;
  31. try
  32. {
  33. TestClassVisitor visitor = new TestClassVisitor();
  34. fis = new FileInputStream(classFile);
  35. ClassReader reader = new ClassReader(fis);
  36. reader.accept(visitor, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES);
  37. isWiredClass = visitor.isWiredTest();
  38. }
  39. catch (FileNotFoundException e)
  40. {
  41. isWiredClass = false;
  42. }
  43. catch (IOException e)
  44. {
  45. isWiredClass = false;
  46. }
  47. finally
  48. {
  49. IOUtils.closeQuietly(fis);
  50. }
  51. return isWiredClass;
  52. }
  53. }