#
# Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0, which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# This Source Code may also be made available under the following Secondary
# Licenses when the conditions for such availability set forth in the
# Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
# version 2 with the GNU Classpath Exception, which is available at
# https://www.gnu.org/software/classpath/license.html.
#
# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
#

# This file lists the excluded tests from Jakarta REST TCK. 
# This is intended only for documentation purpose and is not used to exclude any tests.
# The tests are excluded from the test source using @Disabled tag in JUnit framework.
#
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#deleteTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#deleteWithCallbackStringWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#deleteWithCallbackWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#deleteWithGenericTypeResponseWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#deleteWithGenericTypeStringWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#deleteWithResponseClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#deleteWithStringClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#getTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#getWithCallbackStringWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#getWithCallbackWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#getWithGenericTypeResponseWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#getWithGenericTypeStringWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#getWithResponseClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#getWithStringClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#headTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#headWithCallbackWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithCallbackStringWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithCallbackStringWithEntityWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithCallbackWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithCallbackWithEntityWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithEntityWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithGenericTypeResponseWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithGenericTypeResponseWithEntityWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithGenericTypeStringWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithGenericTypeStringWithEntityWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithResponseClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithResponseClassWithEntityWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithStringClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#methodWithStringClassWithEntityWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#optionsTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#optionsWithCallbackWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#optionsWithGenericTypeResponseWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#optionsWithGenericTypeStringWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#optionsWithResponseClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#optionsWithStringCallbackWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#optionsWithStringClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#postTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#postWithCallbackWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#postWithGenericTypeResponseWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#postWithGenericTypeStringWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#postWithResponseClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#postWithStringClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#putTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#putWithCallbackWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#putWithGenericTypeResponseWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#putWithGenericTypeStringWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#putWithResponseClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#putWithStringCallbackWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#putWithStringClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#traceTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#traceWithCallbackWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#traceWithGenericTypeResponseWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#traceWithGenericTypeStringWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#traceWithResponseClassWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#traceWithStringCallbackWhileServerWaitTest
ee/jakarta/tck/ws/rs/jaxrs21/ee/client/executor/async/JAXRSClient.java#traceWithStringClassWhileServerWaitTest

#
#
ee/jakarta/tck/ws/rs/jaxrs21/ee/sse/sseeventsource/JAXRSClient.java#connectionLostForDefault500msTest

