http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/cdi-tck-webappsdeployer.mdtext ---------------------------------------------------------------------- diff --git a/src/main/jbake/content/dev/cdi-tck-webappsdeployer.mdtext b/src/main/jbake/content/dev/cdi-tck-webappsdeployer.mdtext new file mode 100644 index 0000000..b5a6c04 --- /dev/null +++ b/src/main/jbake/content/dev/cdi-tck-webappsdeployer.mdtext @@ -0,0 +1,266 @@ +Title: CDI TCK status with webapps/ deployer + +To run the TCK with the webapps/ directory deployer: + + cd openejb/tck/cdi-tomee/ + mvn clean install -Pwebapp-deployer + +See [TOMEE-37](https://issues.apache.org/jira/browse/TOMEE-37) + +The easiest way to run just one test is to update the `src/test/resources/passing.xml` file like so: + + <?xml version="1.0" encoding="UTF-8"?> + <suite name="CDI TCK" verbose="0"> + <test name="CDI TCK"> + <classes> + <class name="org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest"/> + </classes> + </test> + </suite> + +You can enable remote debugging for the server with the following property: + + mvn clean install -Pwebapp-deployer -Dopenejb.server.debug=true + +The default port is `5005`. That can be changed as well: + + mvn clean install -Pwebapp-deployer -Dopenejb.server.debug=true -Dserver.debug.port=5001 + + + +# Possible issues in the server + + - testBeanWithNameJavaxEnterpriseContextConversation(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf + - testBeanWithRequestScope(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf + - testBeginAlreadyLongRunningConversationThrowsException(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf + - testConversationActiveDuringNonFacesRequest(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cloud.jsf + - testConversationBeginMakesConversationLongRunning(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf + - testConversationEndMakesConversationTransient(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf + - testConversationHasDefaultTimeout(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf + - testConversationIdMayBeSetByApplication(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf + - testConversationIdMayBeSetByContainer(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf + - testConversationIdSetByContainerIsUnique(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/storm.jsf + - testConversationsDontCrossSessionBoundary1(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest) + - testConversationsDontCrossSessionBoundary2(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/rain.jsf + - testEndTransientConversationThrowsException(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf + - testLongRunningConversationInstancesNotDestroyedAtRequestEnd(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/storm.jsf + - testSetConversationTimeoutOverride(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf + - testTransientConversationHasNullId(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf + - testTransientConversationInstancesDestroyedAtRequestEnd(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cloud.jsf + - testInvalidatingSessionDestroysConversation(org.jboss.jsr299.tck.tests.context.conversation.InvalidatingSessionDestroysConversationTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.InvalidatingSessionDestroysConversationTest/clouds.jsf + - testConversationPropagated(org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest/storm.jsf + - testConversationPropagatedOverRedirect(org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest/storm.jsf + - testManualCidPropagation(org.jboss.jsr299.tck.tests.context.conversation.ManualCidPropagationTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ManualCidPropagationTest/storm.jsf + - testRequestScopeActiveDuringCallToEjbTimeoutMethod(org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest): Error launching test org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest/?outputMode=serializedObject&methodName=testRequestScopeActiveDuringCallToEjbTimeoutMethod. Kept on getting 404s. + - testRequestScopeDestroyedAfterCallToEjbTimeoutMethod(org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest): Error launching test org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest/?outputMode=serializedObject&methodName=testRequestScopeDestroyedAfterCallToEjbTimeoutMethod. Kept on getting 404s. + - testScopeTypeDeclaredInheritedIsIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&methodName=testScopeTypeDeclaredInheritedIsIndirectlyInherited. Kept on getting 404s. + - testScopeTypeDeclaredInheritedIsInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&methodName=testScopeTypeDeclaredInheritedIsInherited. Kept on getting 404s. + - testScopeTypeNotDeclaredInheritedIsNotIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&methodName=testScopeTypeNotDeclaredInheritedIsNotIndirectlyInherited. Kept on getting 404s. + - testScopeTypeNotDeclaredInheritedIsNotInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&methodName=testScopeTypeNotDeclaredInheritedIsNotInherited. Kept on getting 404s. + - testStereotypeDeclaredInheritedIsIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest) + - testStereotypeDeclaredInheritedIsInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest) + - testStereotypeNotDeclaredInheritedIsNotIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest) + - testStereotypeNotDeclaredInheritedIsNotInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest) + - testStereotypeScopeIsOverriddenByIndirectlyInheritedScope(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest) + - testStereotypeScopeIsOverriddenByInheritedScope(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest) + - test(org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest) + - testNonStaticObserverMethodIndirectlyInherited(org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest) + - testNonStaticObserverMethodInherited(org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest) + - testGetEJBName(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest) + - testGetSessionBeanType(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest) + - testProcessAnnotatedTypeFiredForSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest) + - testProcessAnnotatedTypeFiredForSessionBeanInterceptor(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest) + - testProcessInjectionTargetFiredForManagedBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest) + - testProcessInjectionTargetFiredForSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest) + - testProcessInjectionTargetFiredForSessionBeanInterceptor(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest) + - testProcessManagedBeanFired(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest) + - testProcessSessionBeanFiredForStatefulSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest) + - testProcessSessionBeanFiredForStatelessSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest) + - testTypeOfProcessInjectionTargetParameter(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest) + - testProcessSessionBeanEvent(org.jboss.jsr299.tck.tests.extensions.processBean.ProcessSessionBeanTest) + - testDefaultValidatorBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest) + - testDefaultValidatorFactoryBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest) + - testPrincipalBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest) + - testUserTransactionBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest) + - testBeanTypesAreLocalInterfacesWithoutWildcardTypesOrTypeVariablesWithSuperInterfaces(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testBeanWithNamedAnnotation(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testBeanWithQualifiers(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testBeanWithScopeAnnotation(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testBeanWithStereotype(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testConstructorAnnotatedInjectCalled(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testDefaultName(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testEnterpriseBeanClassLocalView(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testObjectIsInAPITypes(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testRemoteInterfacesAreNotInAPITypes(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testSingletonWithApplicationScopeOK(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testSingletonWithDependentScopeOK(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testStatelessMustBeDependentScoped(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest) + - testEjbDeclaredInXmlNotSimpleBean(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanViaXmlTest) + - testCreateSLSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest) + - testDependentObjectsDestroyed(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest) + - testDestroyRemovesSFSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest) + - testDirectSubClassInheritsPostConstructOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest) + - testIndirectSubClassInheritsPostConstructOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest) + - testIndirectSubClassInheritsPreDestroyOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest) + - testInitializerMethodsCalledWithCurrentParameterValues(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest) + - testRemovedEjbIgnored(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest) + - testSerializeSFSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest) + - testSubClassInheritsPreDestroyOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest) + - testNewBeanHasNoDisposalMethods(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest) + - testNewBeanHasNoProducerMethods(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest) + - testNewBeanHasSameConstructor(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest) + - testNewBeanHasSameInitializers(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest) + - testForEachEnterpriseBeanANewBeanExists(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest) + - testNewBeanHasNoBeanELName(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest) + - testNewBeanHasNoObservers(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest) + - testNewBeanHasNoStereotypes(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest) + - testNewBeanIsDependentScoped(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest) + - testNewBeanIsHasOnlyNewBinding(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest) + - testApplicationCannotCallRemoveMethodOnNonDependentScopedSessionEnterpriseBean(org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest): + - testApplicationMayCallAnyRemoveMethodOnDependentScopedSessionEnterpriseBeans(org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest) + - testApplicationMayCallRemoveMethodOnDependentScopedSessionEnterpriseBeansButNoParametersArePassed(org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest) + - testInitializerMethodNotABusinessMethod(org.jboss.jsr299.tck.tests.implementation.initializer.EjbInitializerMethodTest) + - testBindingTypeOnInitializerParameter(org.jboss.jsr299.tck.tests.implementation.initializer.InitializerMethodTest) + - testMultipleInitializerMethodsAreCalled(org.jboss.jsr299.tck.tests.implementation.initializer.InitializerMethodTest) + - testStaticProducerField(org.jboss.jsr299.tck.tests.implementation.producer.field.definition.enterprise.EnterpriseProducerFieldDefinitionTest) + - testNonStaticProducerMethodInheritedBySpecializingSubclass(org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest) + - testNonStaticProducerMethodNotIndirectlyInherited(org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest) + - testNonStaticProducerMethodNotInherited(org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest) + - testConstructorHasDisposesParameter(org.jboss.jsr299.tck.tests.implementation.simple.definition.constructorHasDisposesParameter.ConstructorHasDisposesParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testConstructorHasObservesParameter(org.jboss.jsr299.tck.tests.implementation.simple.definition.constructorHasObservesParameter.ConstructorHasObservesParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testNonDependentScopedBeanCanNotHavePublicField(org.jboss.jsr299.tck.tests.implementation.simple.definition.dependentWithPublicField.DependentWithPublicFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testTooManyInitializerAnnotatedConstructor(org.jboss.jsr299.tck.tests.implementation.simple.definition.tooManyInitializerAnnotatedConstructors.TooManyInitializerAnnotatedConstructorsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testNormalScopedUnproxyableBeanThrowsException(org.jboss.jsr299.tck.tests.implementation.simple.lifecycle.unproxyable.UnproxyableManagedBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testInjectionOfEjbs(org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest) + - testPassivationOfEjbs(org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest) + - testSpecializedBeanNotInstantiated(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationIntegrationTest) + - testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest) + - testSpecializingBeanHasNameOfSpecializedBean(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest) + - testInterceptorsDeclaredUsingInterceptorsCalledBeforeInterceptorBinding(org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.interceptorOrder.SessionBeanInterceptorOrderTest) + - testNonContextualSessionBeanReferenceIsIntercepted(org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.nonContextualReference.SessionBeanInterceptorOnNonContextualEjbReferenceTest) + - testSessionBeanIsIntercepted(org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.simpleInterception.SessionBeanInterceptorDefinitionTest) + - testAnnotationMemberWithoutNonBinding(org.jboss.jsr299.tck.tests.lookup.binding.members.annotation.BindingAnnotationWithMemberTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testArrayMemberWithoutNonBinding(org.jboss.jsr299.tck.tests.lookup.binding.members.array.BindingAnnotationWithMemberTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testDuplicateNamedBeans(org.jboss.jsr299.tck.tests.lookup.byname.duplicateNameResolution.DuplicateNameResolutionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testDuplicateBeanNamePrefix(org.jboss.jsr299.tck.tests.lookup.byname.duplicatePrefixResolution.DuplicateNamePrefixResolutionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testInjectionPointWithArrayType(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.array.ArrayTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedBean(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.finalClass.FinalClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testClassWithFinalMethodCannotBeProxied(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.finalMethod.FinalMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedBean(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.primitive.UnproxyableTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testClassWithPrivateConstructor(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.privateConstructor.PrivateConstructorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testELResolverRegisteredWithJsf(org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest/JSFTestPage.jsf + - testInitializerCalledAfterFieldInjectionOfSuperclass(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest) + - testInitializerCalledAfterResourceInjection(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest) + - testPostConstructCalledAfterInitializerOfSuperclass(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest) + - testFieldDeclaredInSuperclassIndirectlyInjected(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest) + - testFieldDeclaredInSuperclassInjected(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest) + - testInjectionOnContextualSessionBean(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest) + - testInjectionOnEJBInterceptor(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest) + - testInjectionOnNonContextualSessionBean(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest) + - testInjectionIntoJSFManagedBean(org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.InjectionIntoNonContextualComponentTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.InjectionIntoNonContextualComponentTest/ManagedBeanTestPage.jsf + - testPrimitiveInjectionPointResolvesToNullableWebBean(org.jboss.jsr299.tck.tests.lookup.injection.nullableBean.NullableBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testBeanTypesOnSessionBean(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.EnterpriseResolutionByTypeTest) + - testDecoratorNotResolved(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.decorator.DecoratorNotInjectedTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + +# Issues likely with the deployer itself + + - testPassivationCapableBeanWithNonPassivatingDecoratorBeanConstructorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.decoratorWithNonPassivatingBeanConstructor.DecoratorWithNonPassivatingBeanConstructorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testPassivationCapableBeanWithNonPassivatingInitializerInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.decoratorWithNonPassivatingInitializerMethod.DecoratorWithNonPassivatingInitializerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testPassivationCapableBeanWithNonPassivatingDecoratorInjectedFieldFails(org.jboss.jsr299.tck.tests.context.passivating.broken.decoratorWithNonPassivatingInjectedField.DecoratorWithNonPassivatingInjectedFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSessionBeanWithNonPassivatingBeanConstructorParamInInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptor.EnterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSessionBeanWithNonPassivatingConstructorFieldInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingConstructorFieldInDecorator.EnterpriseBeanWithNonPassivatingFieldInDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSessionBeanWithNonPassivatingInitializerFieldInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInitializerInDecorator.EnterpriseBeanWithNonPassivatingInitializerInDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSessionBeanWithNonPassivatingInitializerParamInInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInitializerParameterInInterceptor.EnterpriseBeanWithNonPassivatingInitializerParameterInInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSessionBeanWithNonPassivatingInjectedFieldInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInjectedFieldInDecorator.EnterpriseBeanWithNonPassivatingInjectedFieldInDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSessionBeanWithNonPassivatingInjectedFieldInInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInjectedFieldInInterceptor.EnterpriseBeanWithNonPassivatingInjectedFieldInInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testDependentBeanWithNonSerializableImplementationInStatefulSessionBeanInitializerFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonSerializableIntializerMethod.EnterpriseBeanWithNonSerializableIntializerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testNonPassivationCapableProducerFieldNotOk(org.jboss.jsr299.tck.tests.context.passivating.broken.finalProducerFieldNotPassivationCapable.NonPassivationCapableProducerFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testPassivationCapableBeanWithNonPassivatingInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.interceptorWithNonPassivatingBeanConstructorParameter.PassivationCapableBeanWithNonPassivatingInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testPassivationCapableBeanWithNonPassivatingInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.interceptorWithNonPassivatingInitializerMethodParameter.PassivationCapableBeanWithNonPassivatingInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testPassivationCapableBeanWithNonPassivatingInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.interceptorWithNonPassivatingInjectedField.PassivationCapableBeanWithNonPassivatingInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testManagedBeanWithNonPassivatingDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.managedBeanWithNonPassivatingDecorator.ManagedBeanWithNonPassivatingDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testManagedBeanWithNonSerializableInterceptorClassNotOK(org.jboss.jsr299.tck.tests.context.passivating.broken.managedBeanWithNonSerializableInterceptorClass.ManagedBeanWithNonSerializableInterceptorClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSimpleWebBeanWithNonSerializableImplementationClassFails(org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableManagedBeanHasPassivatingScope.NonPassivationManagedBeanHasPassivatingScopeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testNonPassivationCapableProducerFieldNotOk(org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableProducerField.NonPassivationCapableProducerFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testNonPassivationCapableProducerMethodNotOk(org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableProducerMethod.NonPassivationCapableProducerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoConstructorParameterOfWebBeanWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingBeanConstructor.PassivatingManagedBeanWithNonPassivatingBeanConstructorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoInitializerParameterOfWebBeanWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingInitializerMethod.PassivatingManagedBeanWithNonPassivatingInitializerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingInjcetedField.PassivatingManagedBeanWithNonPassivatingInjcetedFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoProducerMethodParameterWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingProducerMethodWithNonPassivatingParameter.PassivatingProducerMethodWithNonPassivatingParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoStatefulSessionBeanFails(org.jboss.jsr299.tck.tests.context.passivating.broken.unserializableSimpleInjectedIntoPassivatingEnterpriseBean.UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testCustomDecoratorDecoratingFinalBean(org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass.CustomDecoratorMatchingBeanWithFinalClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testDecoratorListedTwiceInBeansXmlNotOK(org.jboss.jsr299.tck.tests.decorators.definition.broken.decoratorListedTwiceInBeansXml.DecoratorListedTwiceInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testEnabledDecoratorNotADecoratorTest(org.jboss.jsr299.tck.tests.decorators.definition.broken.enabledDecoratorIsNotDecorator.EnabledDecoratorNotADecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testAppliesToFinalManagedBeanClass(org.jboss.jsr299.tck.tests.decorators.definition.broken.finalBeanClass.FinalBeanClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testAppliesToFinalMethodOnManagedBeanClass(org.jboss.jsr299.tck.tests.decorators.definition.broken.finalBeanMethod.FinalBeanMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testMultipleDelegateInjectionPoints(org.jboss.jsr299.tck.tests.decorators.definition.broken.multipleDelegateInjectionPoints.MultipleDelegateInjectionPointsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testNoDelegateInjectionPoints(org.jboss.jsr299.tck.tests.decorators.definition.broken.noDelegateInjectionPoints.NoDelegateInjectionPointsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testNonDecoratorWithDecoratesAnnotationNotOK(org.jboss.jsr299.tck.tests.decorators.definition.broken.nonDecoratorWithDecorates.NonDecoratorWithDecoratesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testNonExistantDecoratorClassInBeansXmlNotOK(org.jboss.jsr299.tck.tests.decorators.definition.broken.nonExistantClassInBeansXml.NonExistantDecoratorClassInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testNotAllDecoratedTypesImplemented(org.jboss.jsr299.tck.tests.decorators.definition.broken.notAllDecoratedTypesImplemented.NotAllDecoratedTypesImplementedTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testDecoratorDelegateInjectionPoints(org.jboss.jsr299.tck.tests.decorators.definition.inject.broken.delegateProducerMethod.DelegateInjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testNonDependentGenericManagedBeanNotOk(org.jboss.jsr299.tck.tests.definition.bean.genericbroken.GenericManagedBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testTooManyScopesSpecifiedInJava(org.jboss.jsr299.tck.tests.definition.scope.broken.tooManyScopes.TooManyScopesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testStereotypeWithNonEmptyNamed(org.jboss.jsr299.tck.tests.definition.stereotype.broken.nonEmptyNamed.NonEmptyNamedTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testMultipleIncompatibleScopeStereotypes(org.jboss.jsr299.tck.tests.definition.stereotype.broken.scopeConflict.IncompatibleStereotypesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testStereotypeWithTooManyScopeTypes(org.jboss.jsr299.tck.tests.definition.stereotype.broken.tooManyScopes.TooManyScopeTypesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testObserverDefinitionErrorTreatedAsDefinitionError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.addDefinitionError.AddDefinitionErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testObserverDeploymentProblemTreatedAsDeploymentError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.addDeploymentProblem.AddDeploymentProblemTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testThrowsException(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.beanDiscoveryMethodThrowsException.BeforeBeanDiscoveryThrowsExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testObserverFailureTreatedAsDefinitionError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.exceptionInAfterBeanDiscoveryObserver.AfterBeanDiscoveryObserverExecutionFailureTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testObserverFailureTreatedAsDeploymentError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.exceptionInAfterBeanValidationObserver.AfterDeploymentValidationObserverExecutionFailureTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testDeploymentFailsDuringValidation(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.failsDuringValidation.AfterBeanDiscoveryFailureTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testAddingScopeType(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.normalScope.AddingNormalScopeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testAddingScopeType(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.passivatingScope.AddingPassivatingScopeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testAnyAnnotationOnEventInjectionPointWithoutTypeParameterFails(org.jboss.jsr299.tck.tests.event.broken.inject.withoutType.EventInjectionWithoutTypeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testDependentBeanWithConditionalObserverMethodIsDefinitionError(org.jboss.jsr299.tck.tests.event.broken.observer.dependentIsConditionalObserver.DependentIsConditionalObserverTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testObserverMethodWithDisposesParamFails(org.jboss.jsr299.tck.tests.event.broken.observer.isDisposer.ObserverMethodAnnotatedDisposesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testObserverMethodAnnotatedInitializerFails(org.jboss.jsr299.tck.tests.event.broken.observer.isInitializer.ObserverMethodAnnotatedInitialzerTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testObserverMethodAnnotatedProducesFails(org.jboss.jsr299.tck.tests.event.broken.observer.isProducer.ObserverMethodAnnotatedProducesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testObserverMethodMustHaveOnlyOneEventParameter(org.jboss.jsr299.tck.tests.event.broken.observer.tooManyParameters.ObserverMethodWithTwoEventParametersTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testProcessAnnotatedTypeEventThrowsExceptionNotOk(org.jboss.jsr299.tck.tests.extensions.annotated.broken.processAnnotatedObserverThrowsException.ProcessAnnotatedTypeEventThrowsExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testProcessInjectionTargetEventThrowsExceptionNotOk(org.jboss.jsr299.tck.tests.extensions.annotated.broken.processInjectionTargetThrowsException.ProcessInjectionTargetEventThrowsExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testAddDefinitionError(org.jboss.jsr299.tck.tests.extensions.container.event.broken.processBeanObserverRegistersException.AddDefinitionErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testProcessBeanObserverThrowsException(org.jboss.jsr299.tck.tests.extensions.container.event.broken.processBeanObserverThrowsException.ThrowExceptionInProcessBeanObserverTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testAddDefinitionError(org.jboss.jsr299.tck.tests.extensions.observer.broken.definitionError.ProcessObserverMethodErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testExceptionIsDefinitionError(org.jboss.jsr299.tck.tests.extensions.observer.broken.exception.ProcessObserverMethodExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testAddingDefinitionError(org.jboss.jsr299.tck.tests.extensions.producer.broken.injectionTargetError.InjectionTargetDefinitionErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - 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 + - 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 + - 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 + - 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 + - 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 + - testInitializerMethodAnnotatedProduces(org.jboss.jsr299.tck.tests.implementation.initializer.broken.methodAnnotatedProduces.InitializerMethodAnnotatedProducesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testInitializerMethodHasParameterAnnotatedDisposes(org.jboss.jsr299.tck.tests.implementation.initializer.broken.parameterAnnotatedDisposes.ParameterAnnotatedDisposesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testInitializerMethodHasParameterAnnotatedObserves(org.jboss.jsr299.tck.tests.implementation.initializer.broken.parameterAnnotatedObserves.ParameterAnnotatedObservesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - 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 + - testProducerMethodWithParameterAnnotatedDisposes(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterAnnotatedDisposes.ParameterAnnotatedDisposesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testProducerMethodWithParameterAnnotatedObserves(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterAnnotatedObserves.ParameterAnnotatedObservesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testParameterizedType(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterizedTypeWithTypeParameter2.ParameterizedTypeWithTypeParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testParameterizedReturnTypeWithWildcard(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterizedTypeWithWildcard.ParameterizedTypeWithWildcardTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - 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 + - 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 + - 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 + - testInconsistentSpecialization(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.inconsistent.InconsistentSpecializationTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSpecializingAndSpecializedBeanHasName(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.names.SpecializingAndSpecializedBeanHasNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSpecializingClassImplementsInterfaceAndExtendsNothing(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend1.SpecializingBeanImplementsInterfaceOnly): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSpecializingClassDirectlyExtendsNothing(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend2.SpecializingBeanExtendsNothingTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSpecializingClassExtendsNonSimpleBean(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend3.SpecializingClassExtendsNonSimpleBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testInterceptorCanNotAlsoBeDecorator(org.jboss.jsr299.tck.tests.interceptors.definition.broken.interceptorCanNotBeDecorator.InterceptorCanNotBeDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testInterceptorBindingsWithConflictingAnnotationMembersNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.invalidBindingAnnotations.InvalidInterceptorBindingAnnotationsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testNonExistantClassInBeansXmlNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.nonExistantClassInBeansXml.NonExistantClassInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testNonInterceptorClassInBeansXmlNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.nonInterceptorClassInBeansXml.NonInterceptorClassInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSameInterceptorClassListedTwiceInBeansXmlNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.sameClassListedTwiceInBeansXml.SameClassListedTwiceInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testAmbiguousDependency(org.jboss.jsr299.tck.tests.lookup.dependency.resolution.broken.ambiguous.AmbiguousDependencyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testUnsatisfiedDependency(org.jboss.jsr299.tck.tests.lookup.dependency.resolution.broken.unsatisfied.UnsatisfiedDependencyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testSessionScopedBeanWithInjectionPoint(org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.normal.scope.NormalScopedBeanWithInjectionPoint): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testDefinitionErrorDetected(org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.not.bean.InjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - testPrimitiveInjectionPointResolvedToNonPrimitiveProducerMethod(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.broken.primitive.PrimitiveInjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - 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 + - test(org.jboss.jsr299.tck.tests.policy.broken.incorrect.name.NoClassWithSpecifiedNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - test(org.jboss.jsr299.tck.tests.policy.broken.incorrect.name.stereotype.NoAnnotationWithSpecifiedNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - test(org.jboss.jsr299.tck.tests.policy.broken.not.policy.ClassIsNotPolicyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - test(org.jboss.jsr299.tck.tests.policy.broken.not.policy.stereotype.ClassIsNotPolicyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + - test(org.jboss.jsr299.tck.tests.policy.broken.same.type.twice.SameTypeListedTwiceTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown + +
http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/configuration-and-assembly.mdtext ---------------------------------------------------------------------- diff --git a/src/main/jbake/content/dev/configuration-and-assembly.mdtext b/src/main/jbake/content/dev/configuration-and-assembly.mdtext new file mode 100644 index 0000000..dd33331 --- /dev/null +++ b/src/main/jbake/content/dev/configuration-and-assembly.mdtext @@ -0,0 +1,185 @@ +Title: Configuration and Assembly + +Disclaimer that we do tweak and change this code frequently, without +notice. It is the very heart of OpenEJB. To keep things tight and clean, +we reserve the right to change it at anytime. Do not consider it a stable +public API. + +<a name="ConfigurationandAssembly-OverviewinCode"></a> +# Overview in Code + +First a glimpse of how OpenEJB looks internally. Here's a test that builds +OpenEJB using it's internal API. This is somewhat similar to how you might +see people constructing Jetty in code. All our internal tests look like +this. + +This usage involves no xml parsing or classpath scanning. If you don't +give it to OpenEJB, OpenEJB doesn't know about it. This is OpenEJB with +all the magic stripped away. At a high level: + +1. You build your app in code using the JAXB tree in code and hand it to the `ConfigurationFactory`. + 1. The `org.apache.openejb.jee` package contains JAXB trees for ejb-jar.xml, beans.xml and all the Java EE deployment descriptors. +1. The `ConfigurationFactory` will produce a fully canonical version of the app called the `Info` tree by: + 1. Merging all sources of meta-data -- xml and annotations + 1. Resolving all ejb, persistence unit, datasource and other references + 1. Validating the app and looking for mistakes +1. The `Info` tree is + 1. The singular source of information about the application from this point forward. + 1. Pure data with no smarts or logic of any kind. + 1. The instruction set of what would be built by the assembler. +1. The `Assembler` will build and start the application exactly as described in the `Info` tree. + 1. When this step completes, you have a running application. + 1. Any failures prior to this point require no cleanup. Only the assembler builds "live" objects. + +An example of what this looks like in code + + import javax.ejb.LocalBean; + import javax.ejb.Stateful; + import javax.naming.InitialContext; + + import junit.framework.TestCase; + import org.apache.openejb.assembler.classic.Assembler; + import org.apache.openejb.assembler.classic.SecurityServiceInfo; + import org.apache.openejb.assembler.classic.TransactionServiceInfo; + import org.apache.openejb.client.LocalInitialContextFactory; + import org.apache.openejb.config.ConfigurationFactory; + import org.apache.openejb.jee.EjbJar; + import org.apache.openejb.jee.StatefulBean; + + public class StatefulTest extends TestCase { + + @Override + protected void setUp() throws Exception { + + System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName()); + + ConfigurationFactory config = new ConfigurationFactory(); + Assembler assembler = new Assembler(); + + assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class)); + assembler.createSecurityService(config.configureService(SecurityServiceInfo.class)); + + EjbJar ejbJar = new EjbJar(); + ejbJar.addEnterpriseBean(new StatefulBean(MyBean.class)); + + assembler.createApplication(config.configureApplication(ejbJar)); + } + + public void test() throws Exception { + InitialContext context = new InitialContext(); + MyBean myBean = (MyBean) context.lookup("MyBeanLocalBean"); + + assertEquals("pan", myBean.echo("nap")); + } + + @Stateful + @LocalBean + public static class MyBean { + + public String echo(String string) { + StringBuilder sb = new StringBuilder(string); + return sb.reverse().toString(); + } + } + } + + +<a name="ConfigurationandAssembly-LogicalOverview"></a> +# Logical Overview + +Slightly more detailed account of the above. Our startup and deploy world +is broken into two phases: + + 1. configuration (app.jar -> AppInfo) we build up a fully normalized and validated tree. Some of the steps are + - read in descriptors + - process annotations filling in the descriptor tree + - validating app compliance + - resolving resource references + - resolving ejb references + - turning the descriptor tree into Info objects for final assembly + - final validation check + + 2. assembly (AppInfo -> actual running app) we assemble a running app as detailed by the AppInfo + - creating classloaders for the application + - creating EntityManagers and EntityManagerFactories + - creating live objects associated with resource-env-refs + - creating deployment (CoreDeploymentInfo) objects for each ejb + - creating the jndi enc of each ejb + - adding method permission objects into the security system (JACC Provider) + - creating transaction policy objects for each ejb + - creating interceptor stacks and bindings for each ejb + - adding ejbs to containers (which may also do things like create pools) + - adding ejbs to the live ContainerSystem registry of ejbs + - adding global jndi entries for each ejb + + + +The listings above aren't necesarrily complete or perfectly ordered, but +generally show the nature of the work done in each phase. + +<a name="ConfigurationandAssembly-ConfigurationPhase"></a> +## Configuration Phase + +A goal is that nothing gets through configuration and into assembly if it +can't actually be built. The configuration phase is where we're supposed +to wipe away any ambiguity, fully normalize the app, make sure it's +internally consistent, spec compliant and generally good to go. If it's +not, no worries as we actually haven't built anything permanent yet. +Everything in the configuration phase is temporary. If it fails the +configuration phase we just issue an error and say "App will not be loaded" +and that's it, there's nothing to undo. + +<a name="ConfigurationandAssembly-InfoObjects-DatabetweenConfigurationandAssembly"></a> +## Info Objects - Data between Configuration and Assembly + +The output of the configuration phase is what we call Info objects and the +root of that tree is OpenEjbConfiguration. These objects are all simple, +serializable data types with no methods, no constructors and no code or +logic of any kind. We even have a test that uses ASM to walk down the Info +tree and check that everything is compliant to these strict rules. + +All of the aforementioned configuration phase sits behind this info object +tree and an interface that produces it: + + - org.apache.openejb.assembler.classic.OpenEjbConfiguration + - org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory + +The job of the OpenEjbConfigurationFactory is simply to produce an +OpenEjbConfiguration tree. With this simple decoupling when the time comes +we can actually support much different styles of use/topologies. For +example, a cluster scenario. We could create an +OpenEjbConfigurationFactory implementation that actually pulled the +OpenEjbConfiguration from a central store or some sort of configuration +server of our creation. Perhaps, someday we write an +OpenEjbConfigurationFactory implementation to wrap the existing one and +look for any changed files. If nothing has changed since last boot, we +simple deserialize an OpenEjbConfiguration tree saved from a previous boot +as a way of reducing startup time on very large apps. + +<a name="ConfigurationandAssembly-Assembly"></a> +## Assembly + +The assembly phase is where real running things are actually built. This +process is inherently ingrained in the details on how OpenEJB works +internally. Keeping it separated from descriptor parsing, validation, +resolving, etc. keeps the actual "openejb building" code as simple as +possible. It also allows for some flexibility and change to take place +architecturally with less chance of it rippling through the entire system. +However it's also not so generic (like spring, etc.) that becomes very +difficult to get things built in a certain way or in a certain order +requiring you to jump through several hoops just to keep the generic system +as beautiful as possible. It knows all the details on how to build each +individual part and in what order to build them. + +In OpenEJB, the Assembler is not supposed to be the gem of the project that +we keep clean, motivating us to push complex things out into other areas +for other people (usually users) to worry about. In fact, it's the +opposite. The runtime system gets top priority on it's architectural needs +and the assembler gets last priority. If there's something we can do in +the Assembler that saves the rest of the system from complexity, we gladly +throw the Assembler on that grenade. Our philosophy is that you can't make +100% of your system "perfect" all the time and sometime the mess has to go +somewhere. The assembler is where. It's purposely not over architected so +that it can continue to serve as a place to take up slack and not make all +this stuff harder than it has to be. + http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/contribution-tips.mdtext ---------------------------------------------------------------------- diff --git a/src/main/jbake/content/dev/contribution-tips.mdtext b/src/main/jbake/content/dev/contribution-tips.mdtext new file mode 100644 index 0000000..a2435ef --- /dev/null +++ b/src/main/jbake/content/dev/contribution-tips.mdtext @@ -0,0 +1,201 @@ +Title: Contribution Tips + +<a name="ContributionTips-Firststeps"></a> +# First steps + +1. Subscribe to the [developer mailing list](mailto:[email protected]) + and say Hi +1. Get the source code with svn + - svn https://svn.apache.org/repos/asf/tomee/tomee/trunk +1. Build the code (maven 3.0.5 or better required) + - mvn clean install + +Play around with the examples under the examples/ directory. Some of the +neater ones are (ordered simple to complex): + + - [simple-stateless](http://tomee.apache.org/examples-trunk/simple-stateless/README.html) + - [simple-stateful](http://tomee.apache.org/examples-trunk/simple-stateful/README.html) + - [simple-singleton](http://tomee.apache.org/examples-trunk/simple-singleton/README.html) + - [simple-mdb](http://tomee.apache.org/examples-trunk/simple-mdb/README.html) + - [async-methods](http://tomee.apache.org/examples-trunk/async-methods/README.html) + - [schedule-methods](http://tomee.apache.org/examples-trunk/schedule-methods/README.html) + - [injection-of-env-entry](http://tomee.apache.org/examples-trunk/injection-of/README.html) + - [injection-of-ejbs](http://tomee.apache.org/examples-trunk/injection-of/README.html) + - [injection-of-datasource](http://tomee.apache.org/examples-trunk/injection-of-datasource/README.html) + - [injection-of-entitymanager](http://tomee.apache.org/examples-trunk/injection-of-entitymanager/README.html) + - [testcase-injection](http://tomee.apache.org/examples-trunk/testcase-injection/README.html) + - [testing-transactions](http://tomee.apache.org/examples-trunk/testing-transactions/README.html) + - [transaction-rollback](http://tomee.apache.org/examples-trunk/transaction-rollback/README.html) + - [testing-security](http://tomee.apache.org/examples-trunk/testing-security/README.html) + - [testing-security-2](http://tomee.apache.org/examples-trunk/testing-security-2/README.html) + - [simple-webservice](http://tomee.apache.org/examples-trunk/simple-webservice/README.html) + + +<a name="ContributionTips-Whatistheprocess?"></a> +# What is the process? + + public void contributeToOpenSource() { + + boolean stillInterestedAndHavingFun = true; + int taskSize = 1; // start small! + + contributing: + while (stillInterestedAndHavingFun) { + + Task task = findSomethingInteresting(taskSize++); + + if (!task.hasJira()) { + createJira(task); + } else { + requestToBeAssignedToJira(task.jiraId()); + } + + while (task.inProgress()) { + + chatOnListALittleGetCleverIdeas(task, new Ideas(task)); + hackALittle(task); + + if (task.tooHard() || task.notFun()) { + // no big deal, try again with something else + taskSize--; + continue contributing; + } + } + + File patchFile = createSvnOrGitPatch(task); + attachToJira(task.jiraId(), patchFile); + askForReviewOnList(task.jiraId()); + + while (!committed(patchFile)) { + + try { + pokeAtSometingElse(); + helpOnUserList(); + dayDream(); + } catch (MoreThanAWeekException e) { + // Assume it fell off the radar -- happens. + // Evidence we need more committers. + bumpThreadOnList(task); + } + } + } + + } + + +After a while when people feel comfortable with you as contributor, they +vote you in as a committer and ... big surprise ... there's almost no +change in the daily routine. You get access to svn and pretty much +everything else stays the same. Instead of submitting patches, now you +have to help review them and commit them. Instead of learning how to +contribute to an open source project, now you have to learn how to help +others get involved. And of course it doesn't happen all at once, you +never stop learning these things and you never stop wishing you had more +time. + +No one cares how much code you can write or how fast you can write it. We +all just contribute what we can when we can and there are no expectations +on how much, how often, or where. + +It's very much about the journey and there is no real end as long as you're +having fun and learning. + +Probably finding something to do when you do have time is the hardest part +... that never changes. + +<a name="ContributionTips-BeBrave"></a> +# Be Brave + +Don't assume everything has already been discussed a million times and +you're the only one who doesn't know and so you shouldn't bother anyone and +should just figure it out on your own. That thinking is your enemy. Don't +do that or you will get nowhere ... very slowly. So slowly that now you +feel you really can't ask about it because surely everyone assumes you know +it or have done it by now. That thinking is a terrible trap. Ask +questions. Post your thoughts. + +Don't worry about asking "stupid" questions on the list -- even simple +questions have great value. They often lead to surprisingly good +discussions. They also have a profound impact on the people around you, +the ones you don't see. + +There are always a handful of people silently reading the list and wishing +they could participate, but are less brave. Whenever someone like you +finally does show up and asks basic questions and shows it's ok, we usually +get another 1 or 2 new faces who suddenly find the courage to speak up. + +Maybe it's like Karaoke; if the people singing sound like you when you +sing, there are better odds you might get up and sign too. Seeing people +like yourself do the things you want to do is inspiring. + +<a name="ContributionTips-StartSmall"></a> +# Start Small + +You may suddenly get a creative surge and see many many things that could +be done. One thing you learn about open source is that you never know when +life is going to intervene and you have to stop. So it's always really +good to get a little tiny thing working, checked in, and just grow it +iteratively as time permits. It is a practice that is key for people of +any skill level. And it goes wonderfully with Open Source as it adds +plenty of space for new ideas. Stone soup starts with the stone, not the +soup! + +So no matter how big the idea or task, ask yourself "do I really need all +of this to get started?". Start with the tiniest possible version. And +then cut it down again :) + +Code is easier to grow than change. And with today's refactoring tools +even change is pretty easy. What's hard is taking a big piece of code and +jamming it into another big piece of code. Don't work too long in +isolation. + +Start small, get it checked in (or patch submitted) and work iteratively. + +<a name="ContributionTips-Thingsthatalwaysneeddoing"></a> +# Things that always need doing + + - Final variables & fields are preferred where possible, but a lot of the +code is old. Feel free to add them and hand the code back. + - If you have any skills with code coverage tools, then you'll probably +find way too much to do! Tests are always welcome. + - There are over a 1,000 TODO comments in the code. Maybe some should be +deleted. Maybe some could be completed. They probably all should have a +JIRA id on them. + - Pick a random class, see if you can figure out what it is doing and +javadoc it. + - Add @Override where applicable + - Intellij has an 'Inspect Code' feature. Yikes does it produce a lot of +output. + - No doubt there is some exception handling that can be greatly improved. + +Obviously, one could get quite bored doing just the above. But sometimes +the above tasks can lead to more fun and exciting things. Anything that +gets you in and looking at code and actually touching and changing it +usually results in questions, discussions and ideas... then little passions +and late nights and lack of sleep and caffeine abuse. + + +<a name="ContributionTips-Thingstoavoid"></a> +# Things to avoid + +<a name="ContributionTips-Hugepatches"></a> +#### Huge patches + +Huge patches are hard to digest. Try to avoid them whenever possible. Any +step forward is a good one. Small steps allow people to see where you're +headed and give input. That's true regardless if you are a committer or +contributor. + +<a name="ContributionTips-Becarefulwithreformatting"></a> +#### Be careful with reformatting + +Try to never mix logic changes with code reformatting. It makes it nearly +impossible for others to see what the actual change was. + + - If you are a committer and want to reformat something, do the reformat +as a separate commit before or after the real change. As long as they are +separate and clearly marked it should be easy for people to see what is +going on. + - If you are a contributor and want to reformat something, maybe suggest +it on the list, but avoid submitting patches that are just reformatting. + http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/creating-itests.mdtext ---------------------------------------------------------------------- diff --git a/src/main/jbake/content/dev/creating-itests.mdtext b/src/main/jbake/content/dev/creating-itests.mdtext new file mode 100644 index 0000000..0bbbef8 --- /dev/null +++ b/src/main/jbake/content/dev/creating-itests.mdtext @@ -0,0 +1,203 @@ +Title: Creating itests +<a name="Creatingitests-OpenEJBitests"></a> +# OpenEJB itests + +The OpenEJB itests module is a framework to create EJB test cases that are +designed according to the JUnit rules, i.e. they all have setUp, tests and +tearDown methods. Since it's JUnit-based, you can do whatever you could do +in JUnit. + +This page describes the steps to create EJB test cases. + +<a name="Creatingitests-Howitestswork"></a> +## How itests work + +The itests module lives in OpenEJB's repository in the _modules\itests_ directory. Setting up the test environment to execute the itests is based on ([maven-itest-plugin-1.0 plugin](http://svn.apache.org/repos/asf/maven/maven-1/plugins-sandbox/trunk/itest/) +). + +Take a look at maven.xml in modules\itests directory. There you'll see that +the default goal is _ejb:install_, which in turn executes _itest_. When the +EJBs (todo: describe it a bit more) are done, the _itest:setup_ goal is +executed, which starts the real game. First, _org/openejb/Security_ +configuration is started. Once it's done, _openejb-itests-xxx.jar_ is +deployed, which is _org/openejb/Itests_ configuration to be started, +afterwards. When the configurations are deployed and started, the +maven-itest-plugin executes junit (see [Ant JUnit task documentation](http://ant.apache.org/manual/OptionalTasks/junit.html) + and project.properties of the itests module). The project.properties file +configures which itests are run and some other stuff. + +The first itest test case is _org.openejb.test.entity.cmp.CmpTestSuite_. +Consult this for more information. Then the others defined in +_maven.itest.includes_ property are executed. + +The order in which the itests are executed is important, so the first order +is set up via the maven.itest.includes property, then the test suites add +their tests in some order, and finally the method names in the test classes +put yet another order. So, be careful what name your test method name will +become. It may influence the order. + +Some EJBs access database resources. It's even more important for CMPs. The +itests module uses the database as defined in the _openejb.test.database_ +property. It's currently defined in the _project.properties_ file of the +module. You can change its value to whatever you wish using the Maven +property setting approaches (-D on the command line, project.properties, +build.properties in your home directory or the project you work in). + +So, the last important information is how the junit tests access the server +resources - EJBs. It's done via executing session beans that in turn get at +the test EJBs, mostly CMPs. It's also possible that the CMP itests will be +accessed directly without having to pass on the call through a session +bean. + +If itests are part of a larger project structure you can disable executing +it using the _maven.itest.skip_ property. Set it to _true_ and Maven won't +run the itests. + +<a name="Creatingitests-SimpleCMP2.1itest"></a> +## Simple CMP 2.1 itest + +<a name="Creatingitests-Databasesetup"></a> +### Database setup + +The itests default database is Derby. The class - +_org.openejb.test.DerbyTestDatabase_ - is instantiated upon executing +_org.openejb.testTestManager.getDatabase()_ in each test case's _setUp()_ +method. Remember, you can define any other database using the +_openejb.test.database_ property or do initialization of your own database +choice in the setUp() method. + +The current implementation of database initialization is based on two +DerbyTestDatabse methods: _createCMP2Model()_ and _dropCMP2Model()_ that +create and drop database structure, accordingly. + +<a name="Creatingitests-CMP2.1deployment"></a> +### CMP 2.1 deployment + +{info:title=Information} +Unless specified, all directories are relative to _modules/itests_ +directory and commands are executed in it. +{info} + +A Maven project can produce one build artefact. It's very important to keep +in mind whenever your tests are to be based on a EJB that's not built by +default. The default EJBs are defined in +_modules/itests/src/ejb/META-INF/ejb-jar.xml_. The corresponding deployment +plan - the _openejb-jar.xml_ file is in +_modules/itests/src/ejb/META-INF/openejb-jar.xml_. + +If you want to test your own EJB, you need to build it yourself, i.e. +describe the build and deployment in _modules/itests/maven.xml_ in the +pregoal of _itest:setup_. + +In the following example, Ant's jar builds openejb-cmp2-petstore.jar file, +which in turn is distributed and started in Geronimo. The _id_ attribute of +_deploy:start_ is as specified in the module's deployment plan. See [Geronimo Deployment](http://wiki.apache.org/geronimo/Deployment) + for more information about Geronimo deployment plans. + + + <ant:jar destfile="${basedir}/target/openejb-cmp2-petstore.jar"> + <fileset dir="${basedir}/target/classes"> + <include name="**/cmp2/petstore/*.class"/> + <include name="**/TestFailureException.class"/> + </fileset> + <metainf dir="${basedir}/src/cmp2/petstore" includes="*.xml"/> + </ant:jar> + <deploy:distribute + uri="deployer:geronimo:jmx:rmi://localhost/jndi/rmi:/JMXConnector" + username="system" + password="manager" + module="${basedir}/target/openejb-cmp2-petstore.jar" + /> + <deploy:start + uri="deployer:geronimo:jmx:rmi://localhost/jndi/rmi:/JMXConnector" + username="system" + password="manager" + id="org/openejb/cmp2/petstore"/> + + +<a name="Creatingitests-Execution"></a> +### Execution + +When EJB classes, deployment descriptor and plan, maven.xml are all set up, +it's time to execute your tests. In order to run itests you will run Maven +in _modules/itests_ directory. + + + ~/openejb/modules/itests + $ maven + + +It's also possible to override project properties and run only some test +cases. + + + ~/openejb/modules/itests + $ maven -Dmaven.itest.includes=**/Cmp2TestSuite.java + + +When a failure occurs, you should take a look at the result file of the +failed test suite in _target/itest-reports_, e.g. + + + ~/openejb/modules/itests + $ maven -Dmaven.itest.includes=**/Cmp2TestSuite.java -o + ... + [junit] + Tests run: 113, Failures: 1, Errors: 0, Time elapsed: 22,132 sec + [junit] + [ERROR] + TEST org.openejb.test.entity.cmp2.Cmp2TestSuite FAILED + ... + BUILD FAILED + File...... C:\Documents and +Settings\root\.maven\cache\maven-itest-plugin-1.0\plugin.jelly + Element... fail + Line...... 166 + Column.... 64 + There were test failures. + Total time: 2 minutes 3 seconds + Finished at: Sun Jul 17 17:48:36 CEST 2005 + + $ more +target/itest-reports/TEST-org.openejb.test.entity.cmp2.Cmp2TestSuite.txt + Testsuite: org.openejb.test.entity.cmp2.Cmp2TestSuite + Tests run: 113, Failures: 1, Errors: 0, Time elapsed: 22,132 sec + + Testcase: PetstoreTests.create: FAILED + Received Exception class java.lang.NullPointerException : null + junit.framework.AssertionFailedError: Received Exception class +java.lang.NullPointerException : null + at +org.openejb.test.entity.cmp2.PetstoreTests.test01_create(PetstoreTests.java:84) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at +sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) + at +sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) + at +org.openejb.test.NumberedTestCase.runTestMethod(NumberedTestCase.java:195) + at +org.openejb.test.NumberedTestCase$3.protect(NumberedTestCase.java:169) + at org.openejb.test.NumberedTestCase.run(NumberedTestCase.java:172) + at org.openejb.test.NumberedTestCase.run(NumberedTestCase.java:141) + at org.openejb.test.TestSuite.run(TestSuite.java:71) + ... + + +Complete execution log is in _target/openejb/var/log/openejb.log_ of the +itests module. + +<a name="Creatingitests-RunningtheTestsinEclipse."></a> +#### Running the Tests in Eclipse. + +The steps for running the iTests inside of Eclipse are given below. They +are + +1) For Local Interface Tests, the class to be run is +_org.apache.openejb.iTest_. +2) For Remote Interface Tests, the class to be run is +_org.apache.openejb.RemoteiTest_. + +In both the cases you need to give _'-Dopenejb.home=target/test-classes/'_ +as a vm argument +for the tests to run. http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/design-application-server.mdtext ---------------------------------------------------------------------- diff --git a/src/main/jbake/content/dev/design-application-server.mdtext b/src/main/jbake/content/dev/design-application-server.mdtext new file mode 100644 index 0000000..62f367c --- /dev/null +++ b/src/main/jbake/content/dev/design-application-server.mdtext @@ -0,0 +1,33 @@ +Title: Design - Application Server +<a name="Design-ApplicationServer-ApplicationServer"></a> +## Application Server + +Sub-component of [OpenEJB](design.html) + + +<a name="Design-ApplicationServer-Definition"></a> +## Definition + +Any component wishing to serve or deliver Enterprise JavaBeans. + +<a name="Design-ApplicationServer-AlsoKnownAs"></a> +## Also Known As + * Server Adapter + * Server Provider + +<a name="Design-ApplicationServer-Responsibilities"></a> +## Responsibilities + * Remote client access to OpenEJB + * Implement the bean's remote and home interfaces. + * Distribute its implementation of the remote and home interfaces. + * Provide clients with a JNDI name space for looking up beans. + * Delegate method invocations to the container. + +<a name="Design-ApplicationServer-RelatedClasses"></a> +## Related Classes + * org.apache.openejb.spi.ApplicationServer + +<a name="Design-ApplicationServer-Implementations"></a> +## Implementations + * [Local Server](design-local-server.html) + * [Remote Server](design-remote-server.html) http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/design-application-serverlinks.mdtext ---------------------------------------------------------------------- diff --git a/src/main/jbake/content/dev/design-application-serverlinks.mdtext b/src/main/jbake/content/dev/design-application-serverlinks.mdtext new file mode 100644 index 0000000..c5d5b18 --- /dev/null +++ b/src/main/jbake/content/dev/design-application-serverlinks.mdtext @@ -0,0 +1,2 @@ +Title: Design - Application ServerLinks +!http://tomee.apache.org/images/figure-appserver.gif! http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/design-assembler.mdtext ---------------------------------------------------------------------- diff --git a/src/main/jbake/content/dev/design-assembler.mdtext b/src/main/jbake/content/dev/design-assembler.mdtext new file mode 100644 index 0000000..d28b818 --- /dev/null +++ b/src/main/jbake/content/dev/design-assembler.mdtext @@ -0,0 +1,33 @@ +Title: Design - Assembler + +<a name="Design-Assembler-Assembler"></a> +## Assembler + +Sub-component of [OpenEJB](design.html) + +<a name="Design-Assembler-Definition"></a> +## Definition + +Instantiates and assembles a configured, runnable, instance of the +container system and all sub-components. Vendors needing extreme control +over the construction of the container system can get it by implementing +this class. Doing this comes with large amounts of resposibility and +complexity and should not be done without a deep understanding of OpenEJB. + +<a name="Design-Assembler-Responsibilities"></a> +## Responsibilities + * Instantiate and initialize all Container implementations + * Instantiate and initialize TransactionService implementation + * Instantiate and initialize SecurityService implementation + * Instantiate and initialize all ResourceManagers + * Load all deployed beans + * Populate each deployment's JNDI ENC + * Populate the IntraVM Server's global, client, JNDI namespace + +<a name="Design-Assembler-RelatedPackages"></a> +## Related Packages + * org.apache.openejb.spi.Assembler + +<a name="Design-Assembler-Implementations"></a> +## Implementations + * [Classic Assembler](design-classic-assembler.html) http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/design-bmp-entitybean-container.mdtext ---------------------------------------------------------------------- diff --git a/src/main/jbake/content/dev/design-bmp-entitybean-container.mdtext b/src/main/jbake/content/dev/design-bmp-entitybean-container.mdtext new file mode 100644 index 0000000..50e3811 --- /dev/null +++ b/src/main/jbake/content/dev/design-bmp-entitybean-container.mdtext @@ -0,0 +1,23 @@ +Title: Design - BMP EntityBean Container + +<a name="Design-BMPEntityBeanContainer-BMPEntityBeanContainer"></a> +## BMP EntityBean Container + +Implementation of [Container](design-container.html) + + +<a name="Design-BMPEntityBeanContainer-Description"></a> +## Description + +Container that implements the EJB defined bean-container contract for +EntityBeans with bean-managed persistence. + +<a name="Design-BMPEntityBeanContainer-AlsoKnownAs"></a> +## Also Known As + * BMP Entity Container + * BMP Container + +<a name="Design-BMPEntityBeanContainer-RelatedClasses"></a> +## Related Classes + * org.apache.openejb.core.entity.EntityContainer + http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/design-classic-assembler.mdtext ---------------------------------------------------------------------- diff --git a/src/main/jbake/content/dev/design-classic-assembler.mdtext b/src/main/jbake/content/dev/design-classic-assembler.mdtext new file mode 100644 index 0000000..59a8162 --- /dev/null +++ b/src/main/jbake/content/dev/design-classic-assembler.mdtext @@ -0,0 +1,28 @@ +Title: Design - Classic Assembler + +<a name="Design-ClassicAssembler-ClassicAssembler"></a> +## Classic Assembler + +Implementation of [Assembler](design-assembler.html) + +<a name="Design-ClassicAssembler-Description"></a> +## Description + +The standard assembler supported by the OpenEJB team. Uses meta-data +supplied via the Configuration Factory to create all components in the +system. It is assumed the meta-data has been checked and validated, all +links and references will resolve, all classes are present, and all apps +compliant. + +<a name="Design-ClassicAssembler-RelatedClasses"></a> +## Related Classes + * org.apache.openejb.assembler.classic.Assembler + * org.apache.openejb.assembler.classic.OpenEjbConfiguration + +<a name="Design-ClassicAssembler-RelatedPackages"></a> +## Related Packages + * org.apache.openejb.assembler.classic + +<a name="Design-ClassicAssembler-Sub-components"></a> +## Sub-components + * [Configuration Factory](design-configuration-factory.html) http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/design-cmp-entitybean-container.mdtext ---------------------------------------------------------------------- diff --git a/src/main/jbake/content/dev/design-cmp-entitybean-container.mdtext b/src/main/jbake/content/dev/design-cmp-entitybean-container.mdtext new file mode 100644 index 0000000..5201676 --- /dev/null +++ b/src/main/jbake/content/dev/design-cmp-entitybean-container.mdtext @@ -0,0 +1,22 @@ +Title: Design - CMP EntityBean Container + +<a name="Design-CMPEntityBeanContainer-CMPEntityBeanContainer"></a> +## CMP EntityBean Container + +Implementation of [Container](design-container.html) + +<a name="Design-CMPEntityBeanContainer-Description"></a> +## Description + +Container that implements the bean-container contract for CMP 1.1 and CMP +2.1 EntityBeans. The container adapts these old CMP EntityBeans to the new +JPA Entity bean model and persists them using a JPA Persistence Provider. + +<a name="Design-CMPEntityBeanContainer-AlsoKnownAs"></a> +## Also Known As + * CMP Entity Container + * CMP Container + +<a name="Design-CMPEntityBeanContainer-FormerlyKnownAs"></a> +## Formerly Known As + * Castor Container http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/design-configuration-factory.mdtext ---------------------------------------------------------------------- diff --git a/src/main/jbake/content/dev/design-configuration-factory.mdtext b/src/main/jbake/content/dev/design-configuration-factory.mdtext new file mode 100644 index 0000000..ba4b5a5 --- /dev/null +++ b/src/main/jbake/content/dev/design-configuration-factory.mdtext @@ -0,0 +1,38 @@ +Title: Design - Configuration Factory + +<a name="Design-ConfigurationFactory-ConfigurationFactory"></a> +## Configuration Factory + +Sub-component of [Classic Assembler](design-classic-assembler.html) + +<a name="Design-ConfigurationFactory-Definition"></a> +## Definition + +Creates an instance of the OpenEjbConfiguration class that contains all the +data and configuration information the Classic assembler needs to construct +the container system. The object structure in the OpenEjbConfiguration +class is refered to as the InfoObjects. The Configuration Factory can +construct, retreive, or populate the InfoObjects from any data source it +chooses or by any means it chooses. + +<a name="Design-ConfigurationFactory-AlsoKnownAs"></a> +## Also Known As + * Config Factory + * InfoObject Factory + +<a name="Design-ConfigurationFactory-Responsibilities"></a> +## Responsibilities + * Creates an instance of the OpenEjbConfiguration + * The data in the InfoObjects must be validated and accurately represent +the system, services, jars, and beans to be constructed + +<a name="Design-ConfigurationFactory-RelatedClasses"></a> +## Related Classes + * org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory + * org.apache.openejb.assembler.classic.OpenEjbConfiguration + +<a name="Design-ConfigurationFactory-Implementations"></a> +## Implementations + * XML Configuration Factory _(no longer supported)_ + * [Nova Configuration Factory](design-nova-configuration-factory.html) +
