MCPcopy Index your code
hub / github.com/apache/tomcat / mergeIntoWebXml

Method mergeIntoWebXml

java/org/apache/jasper/JspC.java:1261–1342  ·  view source on GitHub ↗

Include the generated web.xml inside the webapp's web.xml. @throws IOException An IO error occurred

()

Source from the content-addressed store, hash-verified

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();

Callers 1

executeMethod · 0.95

Calls 14

getMessageMethod · 0.95
openWebxmlReaderMethod · 0.95
openWebxmlWriterMethod · 0.95
getElementMethod · 0.95
readMethod · 0.65
containsMethod · 0.65
writeMethod · 0.65
equalsMethod · 0.65
deleteMethod · 0.65
isDebugEnabledMethod · 0.65
debugMethod · 0.65
toStringMethod · 0.65

Tested by

no test coverage detected