<?xml version="1.0" encoding="utf-8"?>
<!--
    Copyright (c) 2006, 2019 IBM Corporation and others.
    This program and the accompanying materials
    are made available under the terms of the Eclipse Public License 2.0
    which accompanies this distribution, and is available at
    https://www.eclipse.org/legal/epl-2.0/

    SPDX-License-Identifier: EPL-2.0

    Contributors:
        IBM Corporation - initial API and implementation
 -->

<index>
  <entry keyword="testing">
    <entry keyword="Web projects">
      <topic href="topics/tomcat.html#tomcat_jst" title="Creating a Tomcat server"/>
    </entry>
  </entry>
  <entry keyword="servers">
    <entry keyword="Apache Tomcat">
      <topic href="topics/tomcat.html#tomcat_jst" title="Creating a Tomcat server"/>
      <topic href="topics/twtomprf.html#twtomprf_jst" title="Adding the Apache Tomcat runtimes"/>
    </entry>
  </entry>
  <entry keyword="Web projects">
    <entry keyword="testing with Apache Tomcat">
      <topic href="topics/tomcat.html#tomcat_jst" title="Creating a Tomcat server"/>
    </entry>
  </entry>
  <entry keyword="Apache Tomcat">
    <entry keyword="defining runtime environment">
      <topic href="topics/twtomprf.html#twtomprf_jst" title="Adding the Apache Tomcat runtimes"/>
    </entry>
  </entry>
  <entry keyword="runtime environments">
    <entry keyword="Apache Tomcat">
      <topic href="topics/twtomprf.html#twtomprf_jst" title="Adding the Apache Tomcat runtimes"/>
    </entry>
  </entry>
  <entry keyword="workbench">
    <entry keyword="Apache Tomcat server runtime environment">
      <topic href="topics/twtomprf.html#twtomprf_jst" title="Adding the Apache Tomcat runtimes"/>
    </entry>
  </entry>
</index>