001
014
015 package com.liferay.portal.tools;
016
017 import com.liferay.portal.kernel.util.FileUtil;
018 import com.liferay.portal.kernel.util.GetterUtil;
019 import com.liferay.portal.kernel.util.StringUtil;
020 import com.liferay.portal.kernel.xml.Document;
021 import com.liferay.portal.kernel.xml.Element;
022 import com.liferay.portal.kernel.xml.SAXReaderUtil;
023 import com.liferay.portal.util.InitUtil;
024 import com.liferay.util.xml.XMLFormatter;
025
026 import java.util.Iterator;
027
028
031 public class WebXML23Converter {
032
033 public static void main(String[] args) {
034 InitUtil.initWithSpring();
035
036 if (args.length == 2) {
037 new WebXML23Converter(args[0], args[1]);
038 }
039 else {
040 throw new IllegalArgumentException();
041 }
042 }
043
044 public WebXML23Converter(String input, String output) {
045 try {
046 String webXML24 = FileUtil.read(input);
047
048 Document doc = SAXReaderUtil.read(webXML24);
049
050 Element root = doc.getRootElement();
051
052 double version = GetterUtil.getDouble(
053 root.attributeValue("version"));
054
055 if (version == 2.4) {
056 System.out.println(
057 "Convert web.xml because it is Servlet 2.4");
058 }
059 else {
060 System.out.println(
061 "Do not convert web.xml because it is not Servlet 2.4");
062
063 return;
064 }
065
066 Iterator<Element> itr1 = root.elements("filter-mapping").iterator();
067
068 while (itr1.hasNext()) {
069 Element filterMapping = itr1.next();
070
071 Iterator<Element> itr2 = filterMapping.elements(
072 "dispatcher").iterator();
073
074 while (itr2.hasNext()) {
075 Element dispatcher = itr2.next();
076
077 dispatcher.detach();
078 }
079 }
080
081 String webXML23 = doc.formattedString();
082
083 int x = webXML23.indexOf("<web-app");
084 int y = webXML23.indexOf(">", x);
085
086 webXML23 = webXML23.substring(0, x) + "<!DOCTYPE web-app PUBLIC \"-
087
088 webXML23 = StringUtil.replace(
089 webXML23,
090 new String[] {
091 "<jsp-config>", "</jsp-config>"
092 },
093 new String[] {
094 "", ""
095 });
096
097 webXML23 = XMLFormatter.toString(webXML23);
098
099 FileUtil.write(output, webXML23);
100 }
101 catch (Exception e) {
102 e.printStackTrace();
103 }
104 }
105
106 }