<?xml version="1.0" encoding="UTF-8"?><!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.     
--><!--
   Lists the test files from the individual modules that will be combined
   together to form the final list file containing all test cases for the TCK. 
 --><fl:filelist xmlns:fl="http://www.apache.org/2014/javax/portlet/tck/filelist">
   <fl:file>tck-TestModule1-tests.xml</fl:file>
   <fl:file>tck-TestModule2-tests.xml</fl:file>
   <fl:file>tck-TestModule3-tests.xml</fl:file>
   <fl:file>tck-V2AnnotationTests-tests.xml</fl:file>
   <fl:file>tck-V2EnvironmentTests-tests.xml</fl:file>
   <fl:file>tck-V2ExceptionTests-tests.xml</fl:file>
   <fl:file>tck-V2FilterTests-tests.xml</fl:file>
   <fl:file>tck-V2PortletTests-tests.xml</fl:file>
   <fl:file>tck-V2RequestTests-tests.xml</fl:file>
   <fl:file>tck-V2ResponseTests-tests.xml</fl:file>
   <fl:file>tck-V2URLTests-tests.xml</fl:file>
   <fl:file>tck-V2WrapperTests-tests.xml</fl:file>
   <fl:file>tck-V2AddlEnvironmentTests-tests.xml</fl:file>
   <fl:file>tck-V2AddlFilterTests-tests.xml</fl:file>
   <fl:file>tck-V2AddlPortletTests-tests.xml</fl:file>
   <fl:file>tck-V2AddlRequestTests-tests.xml</fl:file>
   <fl:file>tck-V2AddlResponseTests-tests.xml</fl:file>
   <fl:file>tck-V2PortletTagLibraryTests-tests.xml</fl:file>
   <fl:file>tck-V2PortletTagLibraryTests2-tests.xml</fl:file>
   <fl:file>tck-V2PortletTagLibraryTests3-tests.xml</fl:file>
   <fl:file>tck-V2DispatcherTests-tests.xml</fl:file>
   <fl:file>tck-V2DispatcherTests2-tests.xml</fl:file>
   <fl:file>tck-V2DispatcherTests3S-tests.xml</fl:file>
   <fl:file>tck-V2DispatcherTests4-tests.xml</fl:file>
   <fl:file>tck-V2DispatcherTests5-tests.xml</fl:file>
   <fl:file>tck-V2DispatcherTests6-tests.xml</fl:file>
   <fl:file>tck-V2DispatcherReqRespTests1-tests.xml</fl:file>
   <fl:file>tck-V2DispatcherReqRespTests2-tests.xml</fl:file>
   <fl:file>tck-V2DispatcherReqRespTests3-tests.xml</fl:file>
   <fl:file>tck-V2DispatcherReqRespTests4-tests.xml</fl:file>
   <fl:file>tck-V2DispatcherReqRespTests5S-tests.xml</fl:file>
   <fl:file>tck-V2SigTestsAction-tests.xml</fl:file>
   <fl:file>tck-V2SigTestsEnv-tests.xml</fl:file>
   <fl:file>tck-V2SigTestsEvent-tests.xml</fl:file>
   <fl:file>tck-V2SigTestsException-tests.xml</fl:file>
   <fl:file>tck-V2SigTestsFilter-tests.xml</fl:file>
   <fl:file>tck-V2SigTestsRender-tests.xml</fl:file>
   <fl:file>tck-V2SigTestsResource-tests.xml</fl:file>
   <fl:file>tck-V2SigTestsURL-tests.xml</fl:file>
   <fl:file>tck-V2SigTestsWrapper-tests.xml</fl:file>
   <fl:file>tck-V3PortletContextTests-tests.xml</fl:file>
   <fl:file>tck-V3PortletConfigTests-tests.xml</fl:file>
   <fl:file>tck-V3URLTests-tests.xml</fl:file>
   <fl:file>tck-V3RenderStateTests-tests.xml</fl:file>
<fl:file>tck-V3HeaderPortletTests-tests.xml</fl:file>
</fl:filelist>