Include the generated web.xml inside the webapp's web.xml. @throws IOException An IO error occurred
()
| 1259 | * @throws IOException An IO error occurred |
| 1260 | */ |
| 1261 | protected void mergeIntoWebXml() throws IOException { |
| 1262 | |
| 1263 | File webappBase = new File(uriRoot); |
| 1264 | File webXml = new File(webappBase, "WEB-INF/web.xml"); |
| 1265 | File webXml2 = new File(webappBase, "WEB-INF/web2.xml"); |
| 1266 | String insertStartMarker = Localizer.getMessage("jspc.webinc.insertStart"); |
| 1267 | String insertEndMarker = Localizer.getMessage("jspc.webinc.insertEnd"); |
| 1268 | |
| 1269 | try (BufferedReader reader = new BufferedReader(openWebxmlReader(webXml)); |
| 1270 | BufferedReader fragmentReader = new BufferedReader(openWebxmlReader(new File(webxmlFile))); |
| 1271 | PrintWriter writer = new PrintWriter(openWebxmlWriter(webXml2))) { |
| 1272 | |
| 1273 | // Insert the <servlet> and <servlet-mapping> declarations |
| 1274 | boolean inserted = false; |
| 1275 | int current = reader.read(); |
| 1276 | while (current > -1) { |
| 1277 | if (current == '<') { |
| 1278 | String element = getElement(reader); |
| 1279 | if (!inserted && insertBefore.contains(element)) { |
| 1280 | // Insert generated content here |
| 1281 | writer.println(insertStartMarker); |
| 1282 | while (true) { |
| 1283 | String line = fragmentReader.readLine(); |
| 1284 | if (line == null) { |
| 1285 | writer.println(); |
| 1286 | break; |
| 1287 | } |
| 1288 | writer.println(line); |
| 1289 | } |
| 1290 | writer.println(insertEndMarker); |
| 1291 | writer.println(); |
| 1292 | writer.write(element); |
| 1293 | inserted = true; |
| 1294 | } else if (element.equals(insertStartMarker)) { |
| 1295 | // Skip the previous auto-generated content |
| 1296 | while (true) { |
| 1297 | current = reader.read(); |
| 1298 | if (current < 0) { |
| 1299 | throw new EOFException(); |
| 1300 | } |
| 1301 | if (current == '<') { |
| 1302 | element = getElement(reader); |
| 1303 | if (element.equals(insertEndMarker)) { |
| 1304 | break; |
| 1305 | } |
| 1306 | } |
| 1307 | } |
| 1308 | do { |
| 1309 | current = reader.read(); |
| 1310 | } while (current == '\n' || current == '\r'); |
| 1311 | continue; |
| 1312 | } else { |
| 1313 | writer.write(element); |
| 1314 | } |
| 1315 | } else { |
| 1316 | writer.write(current); |
| 1317 | } |
| 1318 | current = reader.read(); |
no test coverage detected