OSDN Git Service

pom.xml の macosxbundle maven2 pluginがうまく動かないので,コメントアウトした.
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / utils / Utility.java
1 package jp.sourceforge.stigmata.utils;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.util.ArrayList;
6 import java.util.List;
7 import java.util.jar.JarEntry;
8 import java.util.jar.JarFile;
9
10 public class Utility{
11     /**
12      * no instance is created
13      */
14     private Utility(){
15     }
16
17     public static void deleteDirectory(File dir){
18         File[] files = dir.listFiles();
19         for(File file: files){
20             if(file.isDirectory()){
21                 deleteDirectory(file);
22             }
23             else{
24                 file.delete();
25             }
26         }
27         dir.delete();
28     }
29
30     public static String array2String(String[] values){
31         StringBuilder builder = new StringBuilder();
32         for(int i = 0; i < values.length; i++){
33             if(i != 0)
34                 builder.append(", ");
35             builder.append(values[i]);
36         }
37         return new String(builder);
38     }
39
40     public static boolean isStigmataPluginJarFile(File pluginFile){
41         return isStigmataPluginJarFile(pluginFile, new ArrayList<String>());
42     }
43
44     public static boolean isStigmataPluginJarFile(File pluginFile, List<String> messages){
45         boolean flag = true;
46         if(pluginFile == null){
47             flag = false;
48         }
49         if(!pluginFile.getName().endsWith(".jar")){
50             messages.add("install.error.notjarfile");
51             flag = false;
52         }
53         if(!pluginFile.exists()){
54             messages.add("install.error.file.missing");
55             flag = false;
56         }
57
58         // check service descriptor.
59         if(flag){
60             try{
61                 JarFile jarfile = new JarFile(pluginFile);
62                 JarEntry entry = jarfile.getJarEntry("META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkSpi");
63                 if(entry == null){
64                     messages.add("install.error.servicedescriptor.missing");
65                     flag = false;
66                 }
67                 jarfile.close();
68             } catch(IOException e){
69                 e.printStackTrace();
70             }
71         }
72         return flag;
73     }
74 }