##### Coverage Report - com.ctrip.framework.apollo.core.utils.ClassLoaderUtil

Classes in this File | Line Coverage | Branch Coverage | Complexity
ClassLoaderUtil |
57% | 11/19
N/A | N/A
| 1.0;1

1 |  |
     package com.ctrip.framework.apollo.core.utils;
2 |  |
3 |  |
     import org.slf4j.Logger;
4 |  |
     import org.slf4j.LoggerFactory;
5 |  |
6 |  |
     import java.io.UnsupportedEncodingException;
7 |  |
     import java.net.URL;
8 |  |
     import java.net.URLDecoder;
9 |  |
10 |  |
     /**
11 |  |
      * @author Jason Song(song_s@ctrip.com)
12 |  |
      */
13 | 0 |
     public class ClassLoaderUtil {
14 | 1 |
       private static final Logger logger = LoggerFactory.getLogger(ClassLoaderUtil.class);
15 |  |
16 | 1 |
       private static ClassLoader loader = Thread.currentThread().getContextClassLoader();
17 | 1 |
       private static String classPath = "";
18 |  |
19 |  |
       static {
20 | 1 |
         if (loader == null) {
21 | 0 |
           logger.warn("Using system class loader");
22 | 0 |
           loader = ClassLoader.getSystemClassLoader();
23 |  |
         }
24 |  |
25 |  |
         try {
26 | 1 |
           URL url = loader.getResource("");
27 |  |
           // get class path
28 | 1 |
           classPath = url.getPath();
29 | 1 |
           classPath = URLDecoder.decode(classPath, "utf-8");
30 |  |
31 |  |
           // 如果是jar包内的，则返回当前路径
32 | 1 |
           if (classPath.contains(".jar!")) {
33 | 0 |
             logger.warn("using config file inline jar!");
34 | 0 |
             classPath = System.getProperty("user.dir");
35 |  |
           }
36 | 0 |
         } catch (UnsupportedEncodingException e) {
37 | 0 |
           e.printStackTrace();
38 | 1 |
         }
39 | 1 |
       }
40 |  |
41 |  |
       public static ClassLoader getLoader() {
42 | 1 |
         return loader;
43 |  |
       }
44 |  |
45 |  |
46 |  |
       public static String getClassPath() {
47 | 0 |
         return classPath;
48 |  |
       }
49 |  |
     }