<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Apache TomEE</title>
	<meta name="description"
		  content="Apache TomEE is a lightweight, yet powerful, JavaEE Application server with feature rich tooling." />
	<meta name="keywords" content="tomee,asf,apache,javaee,jee,shade,embedded,test,junit,applicationcomposer,maven,arquillian" />
	<meta name="author" content="Luka Cvetinovic for Codrops" />
	<link rel="icon" href="../favicon.ico">
	<link rel="icon"  type="image/png" href="../favicon.png">
	<meta name="msapplication-TileColor" content="#80287a">
	<meta name="theme-color" content="#80287a">
	<link rel="stylesheet" type="text/css" href="../css/normalize.css">
	<link rel="stylesheet" type="text/css" href="../css/bootstrap.css">
	<link rel="stylesheet" type="text/css" href="../css/owl.css">
	<link rel="stylesheet" type="text/css" href="../css/animate.css">
	<link rel="stylesheet" type="text/css" href="../fonts/font-awesome-4.1.0/css/font-awesome.min.css">
	<link rel="stylesheet" type="text/css" href="../fonts/eleganticons/et-icons.css">
	<link rel="stylesheet" type="text/css" href="../css/jqtree.css">
	<link rel="stylesheet" type="text/css" href="../css/idea.css">
	<link rel="stylesheet" type="text/css" href="../css/cardio.css">

	<script type="text/javascript">

      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-2717626-1']);
      _gaq.push(['_setDomainName', 'apache.org']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();

    </script>
</head>

<body>
    <div class="preloader">
		<img src="../img/loader.gif" alt="Preloader image">
	</div>
	    <nav class="navbar">
		<div class="container">
		  <div class="row">          <div class="col-md-12">

			<!-- Brand and toggle get grouped for better mobile display -->
			<div class="navbar-header">
				<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
					<span class="sr-only">Toggle navigation</span>
					<span class="icon-bar"></span>
					<span class="icon-bar"></span>
					<span class="icon-bar"></span>
				</button>
				<a class="navbar-brand" href="/" title="Apache TomEE">
				    <span>

				    
                        <img 
							src="../img/apache_tomee-logo.svg"
							onerror="this.src='../img/apache_tomee-logo.jpg'"
							height="50"
							>
                    

                    </span>
                </a>
			</div>
			<!-- Collect the nav links, forms, and other content for toggling -->
			<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
				<ul class="nav navbar-nav navbar-right main-nav">
					<li><a href="../docs.html">Documentation</a></li>
					<li><a href="../community/index.html">Community</a></li>
					<li><a href="../security/security.html">Security</a></li>
					<li><a class="btn btn-accent accent-orange no-shadow" href="../download.html">Downloads</a></li>
				</ul>
			</div>
			<!-- /.navbar-collapse -->
		   </div></div>
		</div>
		<!-- /.container-fluid -->
	</nav>


    <div id="main-block" class="container main-block">
        <div class="row title">
          <div class="col-md-12">
            <div class='page-header'>
              
              <h1>CDI TCK status with webapps deployer</h1>
            </div>
          </div>
        </div>
        <div class="row">
            
            <div class="col-md-12">
                <div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>To run the TCK with the webapps/ directory deployer:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>cd openejb/tck/cdi-tomee/
mvn clean install -Pwebapp-deployer</pre>
</div>
</div>
<div class="paragraph">
<p>See <a href="https://issues.apache.org/jira/browse/TOMEE-37">TOMEE-37</a></p>
</div>
<div class="paragraph">
<p>The easiest way to run just one test is to update the <code>src/test/resources/passing.xml</code> file like so:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;suite name="CDI TCK" verbose="0"&gt;
  &lt;test name="CDI TCK"&gt;
    &lt;classes&gt;
      &lt;class name="org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest"/&gt;
    &lt;/classes&gt;
  &lt;/test&gt;
&lt;/suite&gt;</pre>
</div>
</div>
<div class="paragraph">
<p>You can enable remote debugging for the server with the following property:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>mvn clean install -Pwebapp-deployer -Dopenejb.server.debug=true</pre>
</div>
</div>
<div class="paragraph">
<p>The default port is <code>5005</code>.
That can be changed as well:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>mvn clean install -Pwebapp-deployer -Dopenejb.server.debug=true -Dserver.debug.port=5001</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_possible_issues_in_the_server">Possible issues in the server</h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>testBeanWithNameJavaxEnterpriseContextConversation(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf</a></p>
</li>
<li>
<p>testBeanWithRequestScope(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf</a></p>
</li>
<li>
<p>testBeginAlreadyLongRunningConversationThrowsException(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf</a></p>
</li>
<li>
<p>testConversationActiveDuringNonFacesRequest(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cloud.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cloud.jsf</a></p>
</li>
<li>
<p>testConversationBeginMakesConversationLongRunning(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf</a></p>
</li>
<li>
<p>testConversationEndMakesConversationTransient(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf</a></p>
</li>
<li>
<p>testConversationHasDefaultTimeout(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf</a></p>
</li>
<li>
<p>testConversationIdMayBeSetByApplication(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf</a></p>
</li>
<li>
<p>testConversationIdMayBeSetByContainer(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf</a></p>
</li>
<li>
<p>testConversationIdSetByContainerIsUnique(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/storm.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/storm.jsf</a></p>
</li>
<li>
<p>testConversationsDontCrossSessionBoundary1(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest)</p>
</li>
<li>
<p>testConversationsDontCrossSessionBoundary2(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/rain.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/rain.jsf</a></p>
</li>
<li>
<p>testEndTransientConversationThrowsException(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf</a></p>
</li>
<li>
<p>testLongRunningConversationInstancesNotDestroyedAtRequestEnd(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/storm.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/storm.jsf</a></p>
</li>
<li>
<p>testSetConversationTimeoutOverride(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf</a></p>
</li>
<li>
<p>testTransientConversationHasNullId(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf</a></p>
</li>
<li>
<p>testTransientConversationInstancesDestroyedAtRequestEnd(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cloud.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cloud.jsf</a></p>
</li>
<li>
<p>testInvalidatingSessionDestroysConversation(org.jboss.jsr299.tck.tests.context.conversation.InvalidatingSessionDestroysConversationTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.InvalidatingSessionDestroysConversationTest/clouds.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.InvalidatingSessionDestroysConversationTest/clouds.jsf</a></p>
</li>
<li>
<p>testConversationPropagated(org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest/storm.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest/storm.jsf</a></p>
</li>
<li>
<p>testConversationPropagatedOverRedirect(org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest/storm.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest/storm.jsf</a></p>
</li>
<li>
<p>testManualCidPropagation(org.jboss.jsr299.tck.tests.context.conversation.ManualCidPropagationTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ManualCidPropagationTest/storm.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ManualCidPropagationTest/storm.jsf</a></p>
</li>
<li>
<p>testRequestScopeActiveDuringCallToEjbTimeoutMethod(org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest): Error launching test org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest at <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest/?outputMode=serializedObject&amp;methodName=testRequestScopeActiveDuringCallToEjbTimeoutMethod" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest/?outputMode=serializedObject&amp;methodName=testRequestScopeActiveDuringCallToEjbTimeoutMethod</a>.
Kept on getting 404s.</p>
</li>
<li>
<p>testRequestScopeDestroyedAfterCallToEjbTimeoutMethod(org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest): Error launching test org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest at <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest/?outputMode=serializedObject&amp;methodName=testRequestScopeDestroyedAfterCallToEjbTimeoutMethod" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest/?outputMode=serializedObject&amp;methodName=testRequestScopeDestroyedAfterCallToEjbTimeoutMethod</a>.
Kept on getting 404s.</p>
</li>
<li>
<p>testScopeTypeDeclaredInheritedIsIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&amp;methodName=testScopeTypeDeclaredInheritedIsIndirectlyInherited" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&amp;methodName=testScopeTypeDeclaredInheritedIsIndirectlyInherited</a>.
Kept on getting 404s.</p>
</li>
<li>
<p>testScopeTypeDeclaredInheritedIsInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&amp;methodName=testScopeTypeDeclaredInheritedIsInherited" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&amp;methodName=testScopeTypeDeclaredInheritedIsInherited</a>.
Kept on getting 404s.</p>
</li>
<li>
<p>testScopeTypeNotDeclaredInheritedIsNotIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&amp;methodName=testScopeTypeNotDeclaredInheritedIsNotIndirectlyInherited" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&amp;methodName=testScopeTypeNotDeclaredInheritedIsNotIndirectlyInherited</a>.
Kept on getting 404s.</p>
</li>
<li>
<p>testScopeTypeNotDeclaredInheritedIsNotInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&amp;methodName=testScopeTypeNotDeclaredInheritedIsNotInherited" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&amp;methodName=testScopeTypeNotDeclaredInheritedIsNotInherited</a>.
Kept on getting 404s.</p>
</li>
<li>
<p>testStereotypeDeclaredInheritedIsIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)</p>
</li>
<li>
<p>testStereotypeDeclaredInheritedIsInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)</p>
</li>
<li>
<p>testStereotypeNotDeclaredInheritedIsNotIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)</p>
</li>
<li>
<p>testStereotypeNotDeclaredInheritedIsNotInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)</p>
</li>
<li>
<p>testStereotypeScopeIsOverriddenByIndirectlyInheritedScope(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)</p>
</li>
<li>
<p>testStereotypeScopeIsOverriddenByInheritedScope(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)</p>
</li>
<li>
<p>test(org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest)</p>
</li>
<li>
<p>testNonStaticObserverMethodIndirectlyInherited(org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest)</p>
</li>
<li>
<p>testNonStaticObserverMethodInherited(org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest)</p>
</li>
<li>
<p>testGetEJBName(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)</p>
</li>
<li>
<p>testGetSessionBeanType(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)</p>
</li>
<li>
<p>testProcessAnnotatedTypeFiredForSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)</p>
</li>
<li>
<p>testProcessAnnotatedTypeFiredForSessionBeanInterceptor(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)</p>
</li>
<li>
<p>testProcessInjectionTargetFiredForManagedBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)</p>
</li>
<li>
<p>testProcessInjectionTargetFiredForSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)</p>
</li>
<li>
<p>testProcessInjectionTargetFiredForSessionBeanInterceptor(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)</p>
</li>
<li>
<p>testProcessManagedBeanFired(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)</p>
</li>
<li>
<p>testProcessSessionBeanFiredForStatefulSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)</p>
</li>
<li>
<p>testProcessSessionBeanFiredForStatelessSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)</p>
</li>
<li>
<p>testTypeOfProcessInjectionTargetParameter(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)</p>
</li>
<li>
<p>testProcessSessionBeanEvent(org.jboss.jsr299.tck.tests.extensions.processBean.ProcessSessionBeanTest)</p>
</li>
<li>
<p>testDefaultValidatorBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest)</p>
</li>
<li>
<p>testDefaultValidatorFactoryBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest)</p>
</li>
<li>
<p>testPrincipalBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest)</p>
</li>
<li>
<p>testUserTransactionBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest)</p>
</li>
<li>
<p>testBeanTypesAreLocalInterfacesWithoutWildcardTypesOrTypeVariablesWithSuperInterfaces(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testBeanWithNamedAnnotation(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testBeanWithQualifiers(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testBeanWithScopeAnnotation(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testBeanWithStereotype(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testConstructorAnnotatedInjectCalled(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testDefaultName(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testEnterpriseBeanClassLocalView(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testObjectIsInAPITypes(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testRemoteInterfacesAreNotInAPITypes(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testSingletonWithApplicationScopeOK(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testSingletonWithDependentScopeOK(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testStatelessMustBeDependentScoped(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)</p>
</li>
<li>
<p>testEjbDeclaredInXmlNotSimpleBean(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanViaXmlTest)</p>
</li>
<li>
<p>testCreateSLSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)</p>
</li>
<li>
<p>testDependentObjectsDestroyed(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)</p>
</li>
<li>
<p>testDestroyRemovesSFSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)</p>
</li>
<li>
<p>testDirectSubClassInheritsPostConstructOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)</p>
</li>
<li>
<p>testIndirectSubClassInheritsPostConstructOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)</p>
</li>
<li>
<p>testIndirectSubClassInheritsPreDestroyOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)</p>
</li>
<li>
<p>testInitializerMethodsCalledWithCurrentParameterValues(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)</p>
</li>
<li>
<p>testRemovedEjbIgnored(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)</p>
</li>
<li>
<p>testSerializeSFSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)</p>
</li>
<li>
<p>testSubClassInheritsPreDestroyOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)</p>
</li>
<li>
<p>testNewBeanHasNoDisposalMethods(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest)</p>
</li>
<li>
<p>testNewBeanHasNoProducerMethods(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest)</p>
</li>
<li>
<p>testNewBeanHasSameConstructor(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest)</p>
</li>
<li>
<p>testNewBeanHasSameInitializers(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest)</p>
</li>
<li>
<p>testForEachEnterpriseBeanANewBeanExists(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)</p>
</li>
<li>
<p>testNewBeanHasNoBeanELName(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)</p>
</li>
<li>
<p>testNewBeanHasNoObservers(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)</p>
</li>
<li>
<p>testNewBeanHasNoStereotypes(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)</p>
</li>
<li>
<p>testNewBeanIsDependentScoped(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)</p>
</li>
<li>
<p>testNewBeanIsHasOnlyNewBinding(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)</p>
</li>
<li>
<p>testApplicationCannotCallRemoveMethodOnNonDependentScopedSessionEnterpriseBean(org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest):</p>
</li>
<li>
<p>testApplicationMayCallAnyRemoveMethodOnDependentScopedSessionEnterpriseBeans(org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest)</p>
</li>
<li>
<p>testApplicationMayCallRemoveMethodOnDependentScopedSessionEnterpriseBeansButNoParametersArePassed(org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest)</p>
</li>
<li>
<p>testInitializerMethodNotABusinessMethod(org.jboss.jsr299.tck.tests.implementation.initializer.EjbInitializerMethodTest)</p>
</li>
<li>
<p>testBindingTypeOnInitializerParameter(org.jboss.jsr299.tck.tests.implementation.initializer.InitializerMethodTest)</p>
</li>
<li>
<p>testMultipleInitializerMethodsAreCalled(org.jboss.jsr299.tck.tests.implementation.initializer.InitializerMethodTest)</p>
</li>
<li>
<p>testStaticProducerField(org.jboss.jsr299.tck.tests.implementation.producer.field.definition.enterprise.EnterpriseProducerFieldDefinitionTest)</p>
</li>
<li>
<p>testNonStaticProducerMethodInheritedBySpecializingSubclass(org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest)</p>
</li>
<li>
<p>testNonStaticProducerMethodNotIndirectlyInherited(org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest)</p>
</li>
<li>
<p>testNonStaticProducerMethodNotInherited(org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest)</p>
</li>
<li>
<p>testConstructorHasDisposesParameter(org.jboss.jsr299.tck.tests.implementation.simple.definition.constructorHasDisposesParameter.ConstructorHasDisposesParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testConstructorHasObservesParameter(org.jboss.jsr299.tck.tests.implementation.simple.definition.constructorHasObservesParameter.ConstructorHasObservesParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testNonDependentScopedBeanCanNotHavePublicField(org.jboss.jsr299.tck.tests.implementation.simple.definition.dependentWithPublicField.DependentWithPublicFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testTooManyInitializerAnnotatedConstructor(org.jboss.jsr299.tck.tests.implementation.simple.definition.tooManyInitializerAnnotatedConstructors.TooManyInitializerAnnotatedConstructorsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testNormalScopedUnproxyableBeanThrowsException(org.jboss.jsr299.tck.tests.implementation.simple.lifecycle.unproxyable.UnproxyableManagedBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testInjectionOfEjbs(org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest)</p>
</li>
<li>
<p>testPassivationOfEjbs(org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest)</p>
</li>
<li>
<p>testSpecializedBeanNotInstantiated(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationIntegrationTest)</p>
</li>
<li>
<p>testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest)</p>
</li>
<li>
<p>testSpecializingBeanHasNameOfSpecializedBean(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest)</p>
</li>
<li>
<p>testInterceptorsDeclaredUsingInterceptorsCalledBeforeInterceptorBinding(org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.interceptorOrder.SessionBeanInterceptorOrderTest)</p>
</li>
<li>
<p>testNonContextualSessionBeanReferenceIsIntercepted(org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.nonContextualReference.SessionBeanInterceptorOnNonContextualEjbReferenceTest)</p>
</li>
<li>
<p>testSessionBeanIsIntercepted(org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.simpleInterception.SessionBeanInterceptorDefinitionTest)</p>
</li>
<li>
<p>testAnnotationMemberWithoutNonBinding(org.jboss.jsr299.tck.tests.lookup.binding.members.annotation.BindingAnnotationWithMemberTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testArrayMemberWithoutNonBinding(org.jboss.jsr299.tck.tests.lookup.binding.members.array.BindingAnnotationWithMemberTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testDuplicateNamedBeans(org.jboss.jsr299.tck.tests.lookup.byname.duplicateNameResolution.DuplicateNameResolutionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testDuplicateBeanNamePrefix(org.jboss.jsr299.tck.tests.lookup.byname.duplicatePrefixResolution.DuplicateNamePrefixResolutionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testInjectionPointWithArrayType(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.array.ArrayTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedBean(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.finalClass.FinalClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testClassWithFinalMethodCannotBeProxied(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.finalMethod.FinalMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedBean(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.primitive.UnproxyableTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testClassWithPrivateConstructor(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.privateConstructor.PrivateConstructorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testELResolverRegisteredWithJsf(org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest/JSFTestPage.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest/JSFTestPage.jsf</a></p>
</li>
<li>
<p>testInitializerCalledAfterFieldInjectionOfSuperclass(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest)</p>
</li>
<li>
<p>testInitializerCalledAfterResourceInjection(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest)</p>
</li>
<li>
<p>testPostConstructCalledAfterInitializerOfSuperclass(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest)</p>
</li>
<li>
<p>testFieldDeclaredInSuperclassIndirectlyInjected(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)</p>
</li>
<li>
<p>testFieldDeclaredInSuperclassInjected(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)</p>
</li>
<li>
<p>testInjectionOnContextualSessionBean(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)</p>
</li>
<li>
<p>testInjectionOnEJBInterceptor(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)</p>
</li>
<li>
<p>testInjectionOnNonContextualSessionBean(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)</p>
</li>
<li>
<p>testInjectionIntoJSFManagedBean(org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.InjectionIntoNonContextualComponentTest): 500 Internal Server Error for <a href="http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.InjectionIntoNonContextualComponentTest/ManagedBeanTestPage.jsf" class="bare">http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.InjectionIntoNonContextualComponentTest/ManagedBeanTestPage.jsf</a></p>
</li>
<li>
<p>testPrimitiveInjectionPointResolvesToNullableWebBean(org.jboss.jsr299.tck.tests.lookup.injection.nullableBean.NullableBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testBeanTypesOnSessionBean(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.EnterpriseResolutionByTypeTest)</p>
</li>
<li>
<p>testDecoratorNotResolved(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.decorator.DecoratorNotInjectedTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_issues_likely_with_the_deployer_itself">Issues likely with the deployer itself</h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>testPassivationCapableBeanWithNonPassivatingDecoratorBeanConstructorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.decoratorWithNonPassivatingBeanConstructor.DecoratorWithNonPassivatingBeanConstructorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testPassivationCapableBeanWithNonPassivatingInitializerInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.decoratorWithNonPassivatingInitializerMethod.DecoratorWithNonPassivatingInitializerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testPassivationCapableBeanWithNonPassivatingDecoratorInjectedFieldFails(org.jboss.jsr299.tck.tests.context.passivating.broken.decoratorWithNonPassivatingInjectedField.DecoratorWithNonPassivatingInjectedFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSessionBeanWithNonPassivatingBeanConstructorParamInInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptor.EnterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSessionBeanWithNonPassivatingConstructorFieldInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingConstructorFieldInDecorator.EnterpriseBeanWithNonPassivatingFieldInDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSessionBeanWithNonPassivatingInitializerFieldInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInitializerInDecorator.EnterpriseBeanWithNonPassivatingInitializerInDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSessionBeanWithNonPassivatingInitializerParamInInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInitializerParameterInInterceptor.EnterpriseBeanWithNonPassivatingInitializerParameterInInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSessionBeanWithNonPassivatingInjectedFieldInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInjectedFieldInDecorator.EnterpriseBeanWithNonPassivatingInjectedFieldInDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSessionBeanWithNonPassivatingInjectedFieldInInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInjectedFieldInInterceptor.EnterpriseBeanWithNonPassivatingInjectedFieldInInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testDependentBeanWithNonSerializableImplementationInStatefulSessionBeanInitializerFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonSerializableIntializerMethod.EnterpriseBeanWithNonSerializableIntializerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testNonPassivationCapableProducerFieldNotOk(org.jboss.jsr299.tck.tests.context.passivating.broken.finalProducerFieldNotPassivationCapable.NonPassivationCapableProducerFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testPassivationCapableBeanWithNonPassivatingInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.interceptorWithNonPassivatingBeanConstructorParameter.PassivationCapableBeanWithNonPassivatingInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testPassivationCapableBeanWithNonPassivatingInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.interceptorWithNonPassivatingInitializerMethodParameter.PassivationCapableBeanWithNonPassivatingInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testPassivationCapableBeanWithNonPassivatingInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.interceptorWithNonPassivatingInjectedField.PassivationCapableBeanWithNonPassivatingInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testManagedBeanWithNonPassivatingDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.managedBeanWithNonPassivatingDecorator.ManagedBeanWithNonPassivatingDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testManagedBeanWithNonSerializableInterceptorClassNotOK(org.jboss.jsr299.tck.tests.context.passivating.broken.managedBeanWithNonSerializableInterceptorClass.ManagedBeanWithNonSerializableInterceptorClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSimpleWebBeanWithNonSerializableImplementationClassFails(org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableManagedBeanHasPassivatingScope.NonPassivationManagedBeanHasPassivatingScopeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testNonPassivationCapableProducerFieldNotOk(org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableProducerField.NonPassivationCapableProducerFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testNonPassivationCapableProducerMethodNotOk(org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableProducerMethod.NonPassivationCapableProducerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoConstructorParameterOfWebBeanWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingBeanConstructor.PassivatingManagedBeanWithNonPassivatingBeanConstructorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoInitializerParameterOfWebBeanWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingInitializerMethod.PassivatingManagedBeanWithNonPassivatingInitializerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingInjcetedField.PassivatingManagedBeanWithNonPassivatingInjcetedFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoProducerMethodParameterWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingProducerMethodWithNonPassivatingParameter.PassivatingProducerMethodWithNonPassivatingParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoStatefulSessionBeanFails(org.jboss.jsr299.tck.tests.context.passivating.broken.unserializableSimpleInjectedIntoPassivatingEnterpriseBean.UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testCustomDecoratorDecoratingFinalBean(org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass.CustomDecoratorMatchingBeanWithFinalClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testDecoratorListedTwiceInBeansXmlNotOK(org.jboss.jsr299.tck.tests.decorators.definition.broken.decoratorListedTwiceInBeansXml.DecoratorListedTwiceInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testEnabledDecoratorNotADecoratorTest(org.jboss.jsr299.tck.tests.decorators.definition.broken.enabledDecoratorIsNotDecorator.EnabledDecoratorNotADecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testAppliesToFinalManagedBeanClass(org.jboss.jsr299.tck.tests.decorators.definition.broken.finalBeanClass.FinalBeanClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testAppliesToFinalMethodOnManagedBeanClass(org.jboss.jsr299.tck.tests.decorators.definition.broken.finalBeanMethod.FinalBeanMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testMultipleDelegateInjectionPoints(org.jboss.jsr299.tck.tests.decorators.definition.broken.multipleDelegateInjectionPoints.MultipleDelegateInjectionPointsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testNoDelegateInjectionPoints(org.jboss.jsr299.tck.tests.decorators.definition.broken.noDelegateInjectionPoints.NoDelegateInjectionPointsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testNonDecoratorWithDecoratesAnnotationNotOK(org.jboss.jsr299.tck.tests.decorators.definition.broken.nonDecoratorWithDecorates.NonDecoratorWithDecoratesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testNonExistantDecoratorClassInBeansXmlNotOK(org.jboss.jsr299.tck.tests.decorators.definition.broken.nonExistantClassInBeansXml.NonExistantDecoratorClassInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testNotAllDecoratedTypesImplemented(org.jboss.jsr299.tck.tests.decorators.definition.broken.notAllDecoratedTypesImplemented.NotAllDecoratedTypesImplementedTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testDecoratorDelegateInjectionPoints(org.jboss.jsr299.tck.tests.decorators.definition.inject.broken.delegateProducerMethod.DelegateInjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testNonDependentGenericManagedBeanNotOk(org.jboss.jsr299.tck.tests.definition.bean.genericbroken.GenericManagedBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testTooManyScopesSpecifiedInJava(org.jboss.jsr299.tck.tests.definition.scope.broken.tooManyScopes.TooManyScopesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testStereotypeWithNonEmptyNamed(org.jboss.jsr299.tck.tests.definition.stereotype.broken.nonEmptyNamed.NonEmptyNamedTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testMultipleIncompatibleScopeStereotypes(org.jboss.jsr299.tck.tests.definition.stereotype.broken.scopeConflict.IncompatibleStereotypesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testStereotypeWithTooManyScopeTypes(org.jboss.jsr299.tck.tests.definition.stereotype.broken.tooManyScopes.TooManyScopeTypesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testObserverDefinitionErrorTreatedAsDefinitionError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.addDefinitionError.AddDefinitionErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testObserverDeploymentProblemTreatedAsDeploymentError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.addDeploymentProblem.AddDeploymentProblemTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testThrowsException(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.beanDiscoveryMethodThrowsException.BeforeBeanDiscoveryThrowsExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testObserverFailureTreatedAsDefinitionError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.exceptionInAfterBeanDiscoveryObserver.AfterBeanDiscoveryObserverExecutionFailureTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testObserverFailureTreatedAsDeploymentError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.exceptionInAfterBeanValidationObserver.AfterDeploymentValidationObserverExecutionFailureTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testDeploymentFailsDuringValidation(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.failsDuringValidation.AfterBeanDiscoveryFailureTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testAddingScopeType(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.normalScope.AddingNormalScopeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testAddingScopeType(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.passivatingScope.AddingPassivatingScopeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testAnyAnnotationOnEventInjectionPointWithoutTypeParameterFails(org.jboss.jsr299.tck.tests.event.broken.inject.withoutType.EventInjectionWithoutTypeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testDependentBeanWithConditionalObserverMethodIsDefinitionError(org.jboss.jsr299.tck.tests.event.broken.observer.dependentIsConditionalObserver.DependentIsConditionalObserverTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testObserverMethodWithDisposesParamFails(org.jboss.jsr299.tck.tests.event.broken.observer.isDisposer.ObserverMethodAnnotatedDisposesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testObserverMethodAnnotatedInitializerFails(org.jboss.jsr299.tck.tests.event.broken.observer.isInitializer.ObserverMethodAnnotatedInitialzerTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testObserverMethodAnnotatedProducesFails(org.jboss.jsr299.tck.tests.event.broken.observer.isProducer.ObserverMethodAnnotatedProducesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testObserverMethodMustHaveOnlyOneEventParameter(org.jboss.jsr299.tck.tests.event.broken.observer.tooManyParameters.ObserverMethodWithTwoEventParametersTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testProcessAnnotatedTypeEventThrowsExceptionNotOk(org.jboss.jsr299.tck.tests.extensions.annotated.broken.processAnnotatedObserverThrowsException.ProcessAnnotatedTypeEventThrowsExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testProcessInjectionTargetEventThrowsExceptionNotOk(org.jboss.jsr299.tck.tests.extensions.annotated.broken.processInjectionTargetThrowsException.ProcessInjectionTargetEventThrowsExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testAddDefinitionError(org.jboss.jsr299.tck.tests.extensions.container.event.broken.processBeanObserverRegistersException.AddDefinitionErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testProcessBeanObserverThrowsException(org.jboss.jsr299.tck.tests.extensions.container.event.broken.processBeanObserverThrowsException.ThrowExceptionInProcessBeanObserverTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testAddDefinitionError(org.jboss.jsr299.tck.tests.extensions.observer.broken.definitionError.ProcessObserverMethodErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testExceptionIsDefinitionError(org.jboss.jsr299.tck.tests.extensions.observer.broken.exception.ProcessObserverMethodExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testAddingDefinitionError(org.jboss.jsr299.tck.tests.extensions.producer.broken.injectionTargetError.InjectionTargetDefinitionErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testInitializerUnallowed(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.initializerUnallowed.InitializerUnallowedDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testMultipleDisposeParameters(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.multiParams.MultipleDisposeParametersDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testObserverParameterUnallowed(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.observesUnallowed.ObserverParameterUnallowedDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testProducesUnallowed(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.producesUnallowed.ProducesUnallowedDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testUnresolvedDisposalMethod(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.unresolvedMethod.UnresolvedDisposalMethodDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testInitializerMethodAnnotatedProduces(org.jboss.jsr299.tck.tests.implementation.initializer.broken.methodAnnotatedProduces.InitializerMethodAnnotatedProducesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testInitializerMethodHasParameterAnnotatedDisposes(org.jboss.jsr299.tck.tests.implementation.initializer.broken.parameterAnnotatedDisposes.ParameterAnnotatedDisposesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testInitializerMethodHasParameterAnnotatedObserves(org.jboss.jsr299.tck.tests.implementation.initializer.broken.parameterAnnotatedObserves.ParameterAnnotatedObservesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testParameterizedReturnTypeWithWildcard(org.jboss.jsr299.tck.tests.implementation.producer.field.definition.broken.parameterizedReturnTypeWithWildcard.ParameterizedReturnTypeWithWildcardTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testProducerMethodWithParameterAnnotatedDisposes(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterAnnotatedDisposes.ParameterAnnotatedDisposesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testProducerMethodWithParameterAnnotatedObserves(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterAnnotatedObserves.ParameterAnnotatedObservesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testParameterizedType(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterizedTypeWithTypeParameter2.ParameterizedTypeWithTypeParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testParameterizedReturnTypeWithWildcard(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterizedTypeWithWildcard.ParameterizedTypeWithWildcardTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSpecializedMethodIndirectlyOverridesAnotherProducerMethod(org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.broken.indirectOverride.IndirectOverrideTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSpecializedStaticMethod(org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.broken.specializesStaticMethod.SpecializesStaticMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSpecializingAndSpecializedBeanHasName(org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.broken.specializingAndSpecializedBeanHaveName.SpecializingAndSpecializedBeanHaveNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testInconsistentSpecialization(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.inconsistent.InconsistentSpecializationTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSpecializingAndSpecializedBeanHasName(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.names.SpecializingAndSpecializedBeanHasNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSpecializingClassImplementsInterfaceAndExtendsNothing(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend1.SpecializingBeanImplementsInterfaceOnly): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSpecializingClassDirectlyExtendsNothing(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend2.SpecializingBeanExtendsNothingTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSpecializingClassExtendsNonSimpleBean(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend3.SpecializingClassExtendsNonSimpleBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testInterceptorCanNotAlsoBeDecorator(org.jboss.jsr299.tck.tests.interceptors.definition.broken.interceptorCanNotBeDecorator.InterceptorCanNotBeDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testInterceptorBindingsWithConflictingAnnotationMembersNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.invalidBindingAnnotations.InvalidInterceptorBindingAnnotationsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testNonExistantClassInBeansXmlNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.nonExistantClassInBeansXml.NonExistantClassInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testNonInterceptorClassInBeansXmlNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.nonInterceptorClassInBeansXml.NonInterceptorClassInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSameInterceptorClassListedTwiceInBeansXmlNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.sameClassListedTwiceInBeansXml.SameClassListedTwiceInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testAmbiguousDependency(org.jboss.jsr299.tck.tests.lookup.dependency.resolution.broken.ambiguous.AmbiguousDependencyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testUnsatisfiedDependency(org.jboss.jsr299.tck.tests.lookup.dependency.resolution.broken.unsatisfied.UnsatisfiedDependencyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testSessionScopedBeanWithInjectionPoint(org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.normal.scope.NormalScopedBeanWithInjectionPoint): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testDefinitionErrorDetected(org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.not.bean.InjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testPrimitiveInjectionPointResolvedToNonPrimitiveProducerMethod(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.broken.primitive.PrimitiveInjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>testTypeVariableInjectionPoint(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.broken.type.variable.TypeVariableInjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>test(org.jboss.jsr299.tck.tests.policy.broken.incorrect.name.NoClassWithSpecifiedNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>test(org.jboss.jsr299.tck.tests.policy.broken.incorrect.name.stereotype.NoAnnotationWithSpecifiedNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>test(org.jboss.jsr299.tck.tests.policy.broken.not.policy.ClassIsNotPolicyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>test(org.jboss.jsr299.tck.tests.policy.broken.not.policy.stereotype.ClassIsNotPolicyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
<li>
<p>test(org.jboss.jsr299.tck.tests.policy.broken.same.type.twice.SameTypeListedTwiceTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown</p>
</li>
</ul>
</div>
</div>
</div>
            </div>
            
        </div>
    </div>
<div style="margin-bottom: 30px;"></div>
<footer>
		<div class="container">
			<div class="row">
				<div class="col-sm-6 text-center-mobile">
					<h3 class="white">Be simple.  Be certified. Be Tomcat.</h3>
					<h5 class="light regular light-white">"A good application in a good server"</h5>
					<ul class="social-footer">
						<li><a href="https://www.facebook.com/ApacheTomEE/"><i class="fa fa-facebook"></i></a></li>
						<li><a href="https://twitter.com/apachetomee"><i class="fa fa-twitter"></i></a></li>
					</ul>
				</div>
				<div class="col-sm-6 text-center-mobile">
					<div class="row opening-hours">
						<div class="col-sm-3 text-center-mobile">
							<h5><a href="../latest/docs/" class="white">Documentation</a></h5>
							<ul class="list-unstyled">
								<li><a href="../latest/docs/admin/configuration/index.html" class="regular light-white">How to configure</a></li>
								<li><a href="../latest/docs/admin/file-layout.html" class="regular light-white">Dir. Structure</a></li>
								<li><a href="../latest/docs/developer/testing/index.html" class="regular light-white">Testing</a></li>
								<li><a href="../latest/docs/admin/cluster/index.html" class="regular light-white">Clustering</a></li>
							</ul>
						</div>
						<div class="col-sm-3 text-center-mobile">
							<h5><a href="../latest/examples/" class="white">Examples</a></h5>
							<ul class="list-unstyled">
								<li><a href="../latest/examples/simple-cdi-interceptor.html" class="regular light-white">CDI Interceptor</a></li>
								<li><a href="../latest/examples/rest-cdi.html" class="regular light-white">REST with CDI</a></li>
								<li><a href="../latest/examples/ejb-examples.html" class="regular light-white">EJB</a></li>
								<li><a href="../latest/examples/jsf-managedBean-and-ejb.html" class="regular light-white">JSF</a></li>
							</ul>
						</div>
						<div class="col-sm-3 text-center-mobile">
							<h5><a href="../community/index.html" class="white">Community</a></h5>
							<ul class="list-unstyled">
								<li><a href="../community/contributors.html" class="regular light-white">Contributors</a></li>
								<li><a href="../community/social.html" class="regular light-white">Social</a></li>
								<li><a href="../community/sources.html" class="regular light-white">Sources</a></li>
							</ul>
						</div>
						<div class="col-sm-3 text-center-mobile">
							<h5><a href="../security/index.html" class="white">Security</a></h5>
							<ul class="list-unstyled">
								<li><a href="http://apache.org/security" target="_blank" class="regular light-white">Apache Security</a></li>
								<li><a href="http://apache.org/security/projects.html" target="_blank" class="regular light-white">Security Projects</a></li>
								<li><a href="http://cve.mitre.org" target="_blank" class="regular light-white">CVE</a></li>
							</ul>
						</div>
					</div>
				</div>
			</div>
			<div class="row bottom-footer text-center-mobile">
				<div class="col-sm-12 light-white">
					<p>Copyright &copy; 1999-2021 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
				</div>
			</div>
		</div>
	</footer>
	<!-- Holder for mobile navigation -->
	<div class="mobile-nav">
        <ul>
          <li><a hef="../latest/docs/admin/index.html">Administrators</a>
          <li><a hef="../latest/docs/developer/index.html">Developers</a>
          <li><a hef="../latest/docs/advanced/index.html">Advanced</a>
          <li><a hef="../community/index.html">Community</a>
        </ul>
		<a href="#" class="close-link"><i class="arrow_up"></i></a>
	</div>
	<!-- Scripts -->
	<script src="../js/jquery-1.11.1.min.js"></script>
	<script src="../js/owl.carousel.min.js"></script>
	<script src="../js/bootstrap.min.js"></script>
	<script src="../js/wow.min.js"></script>
	<script src="../js/typewriter.js"></script>
	<script src="../js/jquery.onepagenav.js"></script>
	<script src="../js/tree.jquery.js"></script>
	<script src="../js/highlight.pack.js"></script>
    <script src="../js/main.js"></script>
		</body>

</html>

