package com.vci.server.workflow.server;
|
|
import java.io.File;
|
import java.net.URI;
|
import java.net.URL;
|
import java.net.URLClassLoader;
|
import java.util.ArrayList;
|
import java.util.Collections;
|
import java.util.Comparator;
|
import java.util.Enumeration;
|
import java.util.List;
|
import java.util.jar.JarEntry;
|
import java.util.jar.JarFile;
|
import java.util.zip.ZipEntry;
|
|
import com.vci.server.workflow.common.resouce.EventProperties;
|
/**
|
*
|
* add by caill 遍历获取所有eventConf_模块名称.properties格式的文件
|
*
|
* */
|
public class EventUtil {
|
public static void main(String[] args){
|
EventUtil eu = new EventUtil();
|
eu.getAlleventConfName();
|
System.out.println(EventProperties.getStringProperty("workflow.event.type.trainsition"));
|
}
|
private static String SPLIT_CHAR = "##";
|
public List<String> getAlleventConfName() {
|
List<String> nameList = new ArrayList<String>();
|
try {
|
URLClassLoader loader = (URLClassLoader)this.getClass().getClassLoader();
|
URL[] urls = loader.getURLs();
|
for(URL url : urls){
|
URI uri = url.toURI();
|
String uriToString = uri.toString();
|
if(uriToString.endsWith(".jar")){
|
JarFile jar = new JarFile(new File(uri));
|
|
Enumeration<JarEntry> entrys = jar.entries();
|
while(entrys.hasMoreElements()){
|
JarEntry entry = entrys.nextElement();
|
ZipEntry zip = (ZipEntry)entry;
|
String zipName = zip.getName();
|
if(zipName.contains("properties/eventConf") && zipName.endsWith(".properties")){
|
nameList.add(zipName + SPLIT_CHAR + uriToString);
|
}
|
}
|
}
|
}
|
Collections.sort(nameList, new Comparator<String>() {
|
public int compare(String o1, String o2) {
|
int index1= o1.indexOf(SPLIT_CHAR);
|
int index2= o2.indexOf(SPLIT_CHAR);
|
String str1 = o1.substring(0, index1);
|
String str2 = o2.substring(0, index2);
|
return str1.compareTo(str2);
|
}
|
});
|
int splitCharLen = SPLIT_CHAR.length();
|
List<String> list = new ArrayList<String>();
|
for (String name: nameList){
|
int index = name.indexOf(SPLIT_CHAR);
|
String zipName = name.substring(0, index);
|
String uriToString = name.substring(index + splitCharLen);
|
//System.out.println("#####properties的路径======" + uriToString + "!" + zipName);
|
list.add(zipName);
|
}
|
nameList = list;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
|
return nameList;
|
}
|
}
|