This is an automated email from the ASF dual-hosted git repository. rzo1 pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomee.git
commit 12b828593adf3c88f2b89c173c7d43273ff40e65 Author: Richard Zowalla <[email protected]> AuthorDate: Fri Sep 25 20:59:16 2026 +0200 TOMEE-3782 describe the actual request scope behaviour in the cdi-request-scope example --- examples/cdi-request-scope/README.adoc | 52 +++++++++---------------------- examples/cdi-request-scope/README_pt.adoc | 51 +++++++++--------------------- 2 files changed, 28 insertions(+), 75 deletions(-) diff --git a/examples/cdi-request-scope/README.adoc b/examples/cdi-request-scope/README.adoc index 46c5f15862..ed149315fa 100644 --- a/examples/cdi-request-scope/README.adoc +++ b/examples/cdi-request-scope/README.adoc @@ -122,46 +122,22 @@ public class RestaurantTest { == Running -In the output you can see that there were two `Soup` instances created - one for -each request. +The test calls `orderSoup()` twice, once with "Tomato Soup" and once with "Potato Soup". In both +calls the `Chef` gets the soup the `Waiter` named, because both beans share the same `Soup` +instance while the call is running. + +Both calls come from the test thread, which is not an HTTP request. For such local EJB calls the +container keeps one request context for the thread, so the `Soup` bean is created only once and +the output shows a single `Soup created`. In a web application, each HTTP request gets its own +request context and therefore its own `Soup` instance. [source,console] ---- -------------------------------------------------------- - T E S T S -------------------------------------------------------- -Running org.superbiz.cdi.requestscope.RestaurantTest -Apache OpenEJB 10.0.0-M1-SNAPSHOT build: 20111224-11:09 -http://tomee.apache.org/ -INFO - openejb.home = C:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope -INFO - openejb.base = C:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope -INFO - Using 'jakarta.ejb.embeddable.EJBContainer=true' -INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service) -INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager) -INFO - Found EjbModule in classpath: c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope\target\classes -INFO - Beginning load: c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope\target\classes -INFO - Configuring enterprise application: c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope -INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container) -INFO - Auto-creating a container for bean cdi-request-scope.Comp: Container(type=MANAGED, id=Default Managed Container) -INFO - Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container) -INFO - Auto-creating a container for bean Chef: Container(type=STATELESS, id=Default Stateless Container) -INFO - Enterprise application "c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope" loaded. -INFO - Assembling app: c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope -INFO - Jndi(name="java:global/cdi-request-scope/Chef!org.superbiz.cdi.requestscope.Chef") -INFO - Jndi(name="java:global/cdi-request-scope/Chef") -INFO - Jndi(name="java:global/cdi-request-scope/Waiter!org.superbiz.cdi.requestscope.Waiter") -INFO - Jndi(name="java:global/cdi-request-scope/Waiter") -INFO - Created Ejb(deployment-id=Chef, ejb-name=Chef, container=Default Stateless Container) -INFO - Created Ejb(deployment-id=Waiter, ejb-name=Waiter, container=Default Stateless Container) -INFO - Started Ejb(deployment-id=Chef, ejb-name=Chef, container=Default Stateless Container) -INFO - Started Ejb(deployment-id=Waiter, ejb-name=Waiter, container=Default Stateless Container) -INFO - Deployed Application(path=c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope) -Soup created +[INFO] Running org.superbiz.cdi.requestscope.RestaurantTest +... +INFO: Deployed Application(path=.../examples/cdi-request-scope) Soup created -INFO - Undeploying app: c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.412 sec - -Results : - -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 +INFO: Undeploying app: .../examples/cdi-request-scope +... +[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 ---- diff --git a/examples/cdi-request-scope/README_pt.adoc b/examples/cdi-request-scope/README_pt.adoc index a3ab5c9c9d..a3d045f6bd 100644 --- a/examples/cdi-request-scope/README_pt.adoc +++ b/examples/cdi-request-scope/README_pt.adoc @@ -122,45 +122,22 @@ public class RestaurantTest { == Executando -Na saida você pode ver que existem duas instâncias de `Soup` criadas - uma para cada requisição. +O teste chama `orderSoup()` duas vezes, uma com "Tomato Soup" e outra com "Potato Soup". Nas duas +chamadas o `Chef` recebe a sopa indicada pelo `Waiter`, porque os dois beans compartilham a mesma +instância de `Soup` durante a chamada. + +As duas chamadas vêm da thread do teste, que não é uma requisição HTTP. Para essas chamadas locais +de EJB o container mantém um único contexto de requisição para a thread, então o bean `Soup` é +criado apenas uma vez e a saída mostra um único `Soup created`. Em uma aplicação web, cada +requisição HTTP tem o seu próprio contexto de requisição e, portanto, a sua própria instância de `Soup`. [source,console] ---- -------------------------------------------------------- - T E S T S -------------------------------------------------------- -Running org.superbiz.cdi.requestscope.RestaurantTest -Apache OpenEJB 10.0.0-M1-SNAPSHOT build: 20111224-11:09 -http://tomee.apache.org/ -INFO - openejb.home = C:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope -INFO - openejb.base = C:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope -INFO - Using 'jakarta.ejb.embeddable.EJBContainer=true' -INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service) -INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager) -INFO - Found EjbModule in classpath: c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope\target\classes -INFO - Beginning load: c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope\target\classes -INFO - Configuring enterprise application: c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope -INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container) -INFO - Auto-creating a container for bean cdi-request-scope.Comp: Container(type=MANAGED, id=Default Managed Container) -INFO - Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container) -INFO - Auto-creating a container for bean Chef: Container(type=STATELESS, id=Default Stateless Container) -INFO - Enterprise application "c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope" loaded. -INFO - Assembling app: c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope -INFO - Jndi(name="java:global/cdi-request-scope/Chef!org.superbiz.cdi.requestscope.Chef") -INFO - Jndi(name="java:global/cdi-request-scope/Chef") -INFO - Jndi(name="java:global/cdi-request-scope/Waiter!org.superbiz.cdi.requestscope.Waiter") -INFO - Jndi(name="java:global/cdi-request-scope/Waiter") -INFO - Created Ejb(deployment-id=Chef, ejb-name=Chef, container=Default Stateless Container) -INFO - Created Ejb(deployment-id=Waiter, ejb-name=Waiter, container=Default Stateless Container) -INFO - Started Ejb(deployment-id=Chef, ejb-name=Chef, container=Default Stateless Container) -INFO - Started Ejb(deployment-id=Waiter, ejb-name=Waiter, container=Default Stateless Container) -INFO - Deployed Application(path=c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope) -Soup created +[INFO] Running org.superbiz.cdi.requestscope.RestaurantTest +... +INFO: Deployed Application(path=.../examples/cdi-request-scope) Soup created -INFO - Undeploying app: c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.412 sec - -Results : - -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 +INFO: Undeploying app: .../examples/cdi-request-scope +... +[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 ----
