<?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.     
-->
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<!-- JSR 362 API AnnotationPortletAppConfigOverrideTests test case names and page mappings -->
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_PortletModes_declaringPortletModes7">V3AnnotationPortletAppConfigOverrideTests</entry>
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_PortletModes_declaringPortletModes8">V3AnnotationPortletAppConfigOverrideTests</entry>
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_WindowStates_declaringWindowStates5">V3AnnotationPortletAppConfigOverrideTests</entry>
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_WindowStates_declaringWindowStates6">V3AnnotationPortletAppConfigOverrideTests</entry>
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_ResourceBundle_declaringResourceBundle2">V3AnnotationPortletAppConfigOverrideTests</entry>
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_DefaultNamespaceURI_declaringDefaultNamespaceURI2">V3AnnotationPortletAppConfigOverrideTests</entry>
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_EventConfiguration1_declaringEvents3">V3AnnotationPortletAppConfigOverrideTests</entry>
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_EventConfiguration2_declaringEvents4">V3AnnotationPortletAppConfigOverrideTests</entry>
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_PublicRenderParameters1_declaringPRP2">V3AnnotationPortletAppConfigOverrideTests</entry>
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_PublicRenderParameters2_declaringPRP3">V3AnnotationPortletAppConfigOverrideTests</entry>
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_PublicRenderParameters3_declaringPRP4">V3AnnotationPortletAppConfigOverrideTests</entry>
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_PortletContainerRuntimeOptions_declaringPCRO2">V3AnnotationPortletAppConfigOverrideTests</entry>
<entry key="V3AnnotationPortletAppConfigOverrideTests_SPEC1_28_PortletContainerRuntimeOptions_declaringPCRO3">V3AnnotationPortletAppConfigOverrideTests</entry>
</properties>
