1
22
23 package com.liferay.portal.tools;
24
25 import com.liferay.portal.kernel.util.StringPool;
26 import com.liferay.portal.kernel.util.StringUtil;
27 import com.liferay.portal.util.FileImpl;
28 import com.liferay.util.xml.DocUtil;
29 import com.liferay.util.xml.XMLFormatter;
30
31 import java.util.Arrays;
32
33 import org.apache.tools.ant.DirectoryScanner;
34
35 import org.dom4j.Document;
36 import org.dom4j.DocumentHelper;
37 import org.dom4j.Element;
38
39
44 public class ExtInfoBuilder {
45
46 public static void main(String[] args) throws Exception {
47 if (args.length == 3) {
48 new ExtInfoBuilder(args[0], args[1], args[2]);
49 }
50 else {
51 throw new IllegalArgumentException();
52 }
53 }
54
55 @SuppressWarnings("deprecation")
56 public ExtInfoBuilder(
57 String basedir, String outputDir, String servletContextName)
58 throws Exception {
59
60 DirectoryScanner ds = new DirectoryScanner();
61
62 ds.setBasedir(basedir);
63 ds.setExcludes(
64 new String[] {
65 "ext-impl/ext-impl.jar", "ext-impl/src/**",
66 "ext-service/ext-service.jar", "ext-service/src/**",
67 "ext-util-bridges/ext-util-bridges.jar",
68 "ext-util-bridges/src/**",
69 "ext-util-java/ext-util-java.jar",
70 "ext-util-java/src/**",
71 "ext-util-taglib/ext-util-taglib.jar",
72 "ext-util-taglib/src/**",
73 "liferay-plugin-package.properties"
74 });
75
76 ds.scan();
77
78 String[] files = ds.getIncludedFiles();
79
80 Arrays.sort(files);
81
82 Element rootElement = DocumentHelper.createElement("ext-info");
83
84 Document document = DocumentHelper.createDocument(rootElement);
85
86 DocUtil.add(rootElement, "servlet-context-name", servletContextName);
87
88 Element filesElement = rootElement.addElement("files");
89
90 for (String file : files) {
91 DocUtil.add(
92 filesElement, "file",
93 StringUtil.replace(
94 file, StringPool.BACK_SLASH, StringPool.SLASH));
95 }
96
97 _fileUtil.write(
98 outputDir + "/ext-" + servletContextName + ".xml",
99 XMLFormatter.toString(document));
100 }
101
102 private static FileImpl _fileUtil = FileImpl.getInstance();
103
104 }