Repository: tomee
Updated Branches:
  refs/heads/master 21dfa9a72 -> 81384b706


http://git-wip-us.apache.org/repos/asf/tomee/blob/180f5c5f/examples/cdi-produces-field/README.adoc
----------------------------------------------------------------------
diff --git a/examples/cdi-produces-field/README.adoc 
b/examples/cdi-produces-field/README.adoc
new file mode 100644
index 0000000..b4096b3
--- /dev/null
+++ b/examples/cdi-produces-field/README.adoc
@@ -0,0 +1,302 @@
+= CDI Field Producer
+:index-group: CDI
+:jbake-type: page
+:jbake-status: published
+
+This example shows the usage of the @Produces annotation. @Produces is a CDI 
mechanism which allows defining a source
+ for injection. This example shows one of two ways of declaring a producer. 
Instead of a producer method (see CDI-produces-disposes example)
+a producer field can be used. A producer field can be used instead of a simple 
getter method. It could be used to
+inject resources, such as persistence contexts. One caveat to using producer 
fields over producer
+ methods is that a @Disposes method cannot be used in conjunction with 
@Produces field.
+
+For the purposes of this example, the type is hard-coded to a specific value.
+A Logger implementation shall contain a list of LogHandlers. We shall have 
three implementations of the LogHandler interface.
+
+* A DatabaseHandler
+* A FileHandler
+* A ConsoleHandler
+
+The DatabaseHandler would seemingly write the logs to a database. The 
FileHandler would write the same logs to a file.
+The ConsoleHandler would just print the logs to a console (Standard out). This 
example is just an illustration of how
+the concepts within CDI work and is not intended to provide a logging 
framework design/implementation.
+
+== ConsoleHandler
+
+....
+package org.superbiz.cdi.produces.field;
+
+public class ConsoleHandler implements LogHandler {
+
+    private String name;
+
+    public ConsoleHandler(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public void writeLog(String s) {
+        System.out.printf("##### Handler: %s, Writing to the console!\n", 
getName());
+    }
+}
+....
+
+== DatabaseHandler
+
+....
+package org.superbiz.cdi.produces.field;
+
+public class DatabaseHandler implements LogHandler {
+
+    private String name;
+
+    public DatabaseHandler(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public void writeLog(String s) {
+        System.out.printf("##### Handler: %s, Writing to the database!\n", 
getName());
+        // Use connection to write log to database
+    }
+}
+....
+
+== FileHandler
+
+....
+package org.superbiz.cdi.produces.field;
+
+public class FileHandler implements LogHandler {
+
+    private String name;
+
+    public FileHandler(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public void writeLog(String s) {
+        System.out.printf("##### Handler: %s, Writing to the file!\n", 
getName());
+        // Write to log file
+    }
+}
+....
+
+== LogFactory
+
+....
+package org.superbiz.cdi.produces.field;
+
+import javax.enterprise.inject.Produces;
+
+public class LogFactory {
+
+    private int type = 2;
+
+    @Produces
+    LogHandler handler;
+
+    public LogFactory(){
+       handler = getLogHandler();
+    }
+
+    public LogHandler getLogHandler() {
+        switch (type) {
+            case 1:
+                return new FileHandler("@Produces created FileHandler!");
+            case 2:
+                return new DatabaseHandler("@Produces created 
DatabaseHandler!");
+            case 3:
+            default:
+                return new ConsoleHandler("@Produces created ConsoleHandler!");
+        }
+
+    }
+}
+....
+
+== Logger
+
+....
+package org.superbiz.cdi.produces.field;
+
+public interface Logger {
+
+    public void log(String s);
+
+    public LogHandler getHandler();
+}
+....
+
+== LoggerImpl
+
+....
+package org.superbiz.cdi.produces.field;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+@Named("logger")
+public class LoggerImpl implements Logger {
+
+    @Inject
+    private LogHandler handler;
+
+    @Override
+    public void log(String s) {
+        getHandler().writeLog(s);
+    }
+
+    public LogHandler getHandler() {
+        return handler;
+    }
+}
+....
+
+== LogHandler
+
+....
+package org.superbiz.cdi.produces.field;
+
+public interface LogHandler {
+
+    public String getName();
+
+    public void writeLog(String s);
+}
+....
+
+== beans.xml
+
+....
+<beans xmlns="http://java.sun.com/xml/ns/javaee"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+                            http://java.sun.com/xml/ns/javaee/beans_1_0.xsd";>
+
+</beans>
+....
+
+== LoggerTest
+
+....
+package org.superbiz.cdi.produces.field;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.ejb.embeddable.EJBContainer;
+import javax.inject.Inject;
+import javax.naming.Context;
+
+import static junit.framework.Assert.assertNotNull;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class LoggerTest {
+
+    @Inject
+    Logger logger;
+
+    private Context ctxt;
+
+    @Before
+    public void setUp() {
+        try {
+            ctxt = EJBContainer.createEJBContainer().getContext();
+            ctxt.bind("inject", this);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @After
+    public void cleanUp() {
+        try {
+            ctxt.unbind("inject");
+            ctxt.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Test
+    public void testLogHandler() {
+        assertNotNull(logger);
+        assertFalse("Handler should not be a ConsoleHandler", 
logger.getHandler() instanceof ConsoleHandler);
+        assertFalse("Handler should not be a FileHandler", logger.getHandler() 
instanceof FileHandler);
+        assertTrue("Handler should be a DatabaseHandler", logger.getHandler() 
instanceof DatabaseHandler);
+        logger.log("##### Testing write\n");
+        logger = null;
+    }
+
+}
+....
+
+= Running
+
+....
+-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.cdi.produces.field.LoggerTest
+INFO - 
********************************************************************************
+INFO - OpenEJB http://tomee.apache.org/
+INFO - Startup: Thu May 10 01:28:19 CDT 2012
+INFO - Copyright 1999-2012 (C) Apache OpenEJB Project, All Rights Reserved.
+INFO - Version: 7.0.0-SNAPSHOT
+INFO - Build date: 20120510
+INFO - Build time: 04:06
+INFO - 
********************************************************************************
+INFO - openejb.home = 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
+INFO - openejb.base = 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
+INFO - Created new singletonService 
org.apache.openejb.cdi.ThreadSingletonServiceImpl@a81b1fb
+INFO - succeeded in installing singleton service
+INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
+INFO - Cannot find the configuration file [conf/openejb.xml].  Will attempt to 
create one for the beans deployed.
+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 - Creating TransactionManager(id=Default Transaction Manager)
+INFO - Creating SecurityService(id=Default Security Service)
+INFO - Inspecting classpath for applications: 26 urls. Consider adjusting your 
exclude/include.  Current settings: openejb.deployments.classpath.exclude='', 
openejb.deployments.classpath.include='.*'
+INFO - Searched 26 classpath urls in 2015 milliseconds.  Average 77 
milliseconds per url.
+INFO - Beginning load: 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field/target/classes
+INFO - Configuring enterprise application: 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
+INFO - Auto-deploying ejb cdi-produces-field.Comp: 
EjbDeployment(deployment-id=cdi-produces-field.Comp)
+INFO - Configuring Service(id=Default Managed Container, type=Container, 
provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean cdi-produces-field.Comp: 
Container(type=MANAGED, id=Default Managed Container)
+INFO - Creating Container(id=Default Managed Container)
+INFO - Using directory /tmp for stateful session passivation
+INFO - Enterprise application 
"/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field" 
loaded.
+INFO - Assembling app: 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
+INFO - ignoreXmlConfiguration == true
+INFO - ignoreXmlConfiguration == true
+INFO - existing thread singleton service in SystemInstance() 
org.apache.openejb.cdi.ThreadSingletonServiceImpl@a81b1fb
+INFO - OpenWebBeans Container is starting...
+INFO - Adding OpenWebBeansPlugin : [CdiPlugin]
+INFO - All injection points were validated successfully.
+INFO - OpenWebBeans Container has started, it took [69] ms.
+INFO - Deployed 
Application(path=/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field)
+##### Handler: @Produces created DatabaseHandler!, Writing to the database!
+INFO - Undeploying app: 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.79 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
+....

http://git-wip-us.apache.org/repos/asf/tomee/blob/180f5c5f/examples/cdi-produces-field/README.md
----------------------------------------------------------------------
diff --git a/examples/cdi-produces-field/README.md 
b/examples/cdi-produces-field/README.md
deleted file mode 100644
index 6db838d..0000000
--- a/examples/cdi-produces-field/README.md
+++ /dev/null
@@ -1,285 +0,0 @@
-index-group=Unrevised
-type=page
-status=published
-title=CDI field producer
-~~~~~~
-
-This example shows the usage of the @Produces annotation. @Produces is a CDI 
mechanism which allows defining a source
- for injection. This example shows one of two ways of declaring a producer. 
Instead of a producer method (see CDI-produces-disposes example)
-a producer field can be used. A producer field can be used instead of a simple 
getter method. It could be used to
-inject resources, such as persistence contexts. One caveat to using producer 
fields over producer
- methods is that a @Disposes method cannot be used in conjunction with 
@Produces field.
- 
-For the purposes of this example, the type is hard-coded to a specific value.
-A Logger implementation shall contain a list of LogHandlers. We shall have 
three implementations of the LogHandler interface.
-
-  * A DatabaseHandler
-  * A FileHandler
-  * A ConsoleHandler
-
-The DatabaseHandler would seemingly write the logs to a database. The 
FileHandler would write the same logs to a file.
-The ConsoleHandler would just print the logs to a console (Standard out). This 
example is just an illustration of how
-the concepts within CDI work and is not intended to provide a logging 
framework design/implementation.
-
-## ConsoleHandler
-
-    package org.superbiz.cdi.produces.field;
-    
-    public class ConsoleHandler implements LogHandler {
-    
-        private String name;
-    
-        public ConsoleHandler(String name) {
-            this.name = name;
-        }
-    
-        @Override
-        public String getName() {
-            return name;
-        }
-    
-        @Override
-        public void writeLog(String s) {
-            System.out.printf("##### Handler: %s, Writing to the console!\n", 
getName());
-        }
-    }
-
-## DatabaseHandler
-
-    package org.superbiz.cdi.produces.field;
-    
-    public class DatabaseHandler implements LogHandler {
-    
-        private String name;
-    
-        public DatabaseHandler(String name) {
-            this.name = name;
-        }
-    
-        @Override
-        public String getName() {
-            return name;
-        }
-    
-        @Override
-        public void writeLog(String s) {
-            System.out.printf("##### Handler: %s, Writing to the database!\n", 
getName());
-            // Use connection to write log to database
-        }
-    }
-
-## FileHandler
-
-    package org.superbiz.cdi.produces.field;
-    
-    public class FileHandler implements LogHandler {
-    
-        private String name;
-    
-        public FileHandler(String name) {
-            this.name = name;
-        }
-    
-        @Override
-        public String getName() {
-            return name;
-        }
-    
-        @Override
-        public void writeLog(String s) {
-            System.out.printf("##### Handler: %s, Writing to the file!\n", 
getName());
-            // Write to log file
-        }
-    }
-
-## LogFactory
-
-       package org.superbiz.cdi.produces.field;
-       
-       import javax.enterprise.inject.Produces;
-       
-       public class LogFactory {
-       
-           private int type = 2;
-           
-           @Produces
-           LogHandler handler;
-           
-           public LogFactory(){
-               handler = getLogHandler();
-           }
-       
-           public LogHandler getLogHandler() {
-               switch (type) {
-                   case 1:
-                       return new FileHandler("@Produces created 
FileHandler!");
-                   case 2:
-                       return new DatabaseHandler("@Produces created 
DatabaseHandler!");
-                   case 3:
-                   default:
-                       return new ConsoleHandler("@Produces created 
ConsoleHandler!");
-               }
-       
-           }
-       }
-
-## Logger
-
-    package org.superbiz.cdi.produces.field;
-    
-    public interface Logger {
-    
-        public void log(String s);
-    
-        public LogHandler getHandler();
-    }
-
-## LoggerImpl
-
-    package org.superbiz.cdi.produces.field;
-    
-    import javax.inject.Inject;
-    import javax.inject.Named;
-    
-    @Named("logger")
-    public class LoggerImpl implements Logger {
-    
-        @Inject
-        private LogHandler handler;
-    
-        @Override
-        public void log(String s) {
-            getHandler().writeLog(s);
-        }
-    
-        public LogHandler getHandler() {
-            return handler;
-        }
-    }
-
-## LogHandler
-
-    package org.superbiz.cdi.produces.field;
-    
-    public interface LogHandler {
-    
-        public String getName();
-    
-        public void writeLog(String s);
-    }
-
-## beans.xml
-
-    <beans xmlns="http://java.sun.com/xml/ns/javaee"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-                                
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd";>
-    
-    </beans>
-
-## LoggerTest
-
-    package org.superbiz.cdi.produces.field;
-    
-    import org.junit.After;
-    import org.junit.Before;
-    import org.junit.Test;
-    
-    import javax.ejb.embeddable.EJBContainer;
-    import javax.inject.Inject;
-    import javax.naming.Context;
-    
-    import static junit.framework.Assert.assertNotNull;
-    import static org.junit.Assert.assertFalse;
-    import static org.junit.Assert.assertTrue;
-    
-    public class LoggerTest {
-    
-        @Inject
-        Logger logger;
-    
-        private Context ctxt;
-    
-        @Before
-        public void setUp() {
-            try {
-                ctxt = EJBContainer.createEJBContainer().getContext();
-                ctxt.bind("inject", this);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-    
-        @After
-        public void cleanUp() {
-            try {
-                ctxt.unbind("inject");
-                ctxt.close();
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-    
-        @Test
-        public void testLogHandler() {
-            assertNotNull(logger);
-            assertFalse("Handler should not be a ConsoleHandler", 
logger.getHandler() instanceof ConsoleHandler);
-            assertFalse("Handler should not be a FileHandler", 
logger.getHandler() instanceof FileHandler);
-            assertTrue("Handler should be a DatabaseHandler", 
logger.getHandler() instanceof DatabaseHandler);
-            logger.log("##### Testing write\n");
-            logger = null;
-        }
-    
-    }
-
-# Running
-
-    
-    -------------------------------------------------------
-        T E S T S
-       -------------------------------------------------------
-       Running org.superbiz.cdi.produces.field.LoggerTest
-       INFO - 
********************************************************************************
-       INFO - OpenEJB http://tomee.apache.org/
-       INFO - Startup: Thu May 10 01:28:19 CDT 2012
-       INFO - Copyright 1999-2012 (C) Apache OpenEJB Project, All Rights 
Reserved.
-       INFO - Version: 7.0.0-SNAPSHOT
-       INFO - Build date: 20120510
-       INFO - Build time: 04:06
-       INFO - 
********************************************************************************
-       INFO - openejb.home = 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
-       INFO - openejb.base = 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
-       INFO - Created new singletonService 
org.apache.openejb.cdi.ThreadSingletonServiceImpl@a81b1fb
-       INFO - succeeded in installing singleton service
-       INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
-       INFO - Cannot find the configuration file [conf/openejb.xml].  Will 
attempt to create one for the beans deployed.
-       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 - Creating TransactionManager(id=Default Transaction Manager)
-       INFO - Creating SecurityService(id=Default Security Service)
-       INFO - Inspecting classpath for applications: 26 urls. Consider 
adjusting your exclude/include.  Current settings: 
openejb.deployments.classpath.exclude='', 
openejb.deployments.classpath.include='.*'
-       INFO - Searched 26 classpath urls in 2015 milliseconds.  Average 77 
milliseconds per url.
-       INFO - Beginning load: 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field/target/classes
-       INFO - Configuring enterprise application: 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
-       INFO - Auto-deploying ejb cdi-produces-field.Comp: 
EjbDeployment(deployment-id=cdi-produces-field.Comp)
-       INFO - Configuring Service(id=Default Managed Container, 
type=Container, provider-id=Default Managed Container)
-       INFO - Auto-creating a container for bean cdi-produces-field.Comp: 
Container(type=MANAGED, id=Default Managed Container)
-       INFO - Creating Container(id=Default Managed Container)
-       INFO - Using directory /tmp for stateful session passivation
-       INFO - Enterprise application 
"/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field" 
loaded.
-       INFO - Assembling app: 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
-       INFO - ignoreXmlConfiguration == true
-       INFO - ignoreXmlConfiguration == true
-       INFO - existing thread singleton service in SystemInstance() 
org.apache.openejb.cdi.ThreadSingletonServiceImpl@a81b1fb
-       INFO - OpenWebBeans Container is starting...
-       INFO - Adding OpenWebBeansPlugin : [CdiPlugin]
-       INFO - All injection points were validated successfully.
-       INFO - OpenWebBeans Container has started, it took [69] ms.
-       INFO - Deployed 
Application(path=/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field)
-       ##### Handler: @Produces created DatabaseHandler!, Writing to the 
database!
-       INFO - Undeploying app: 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
-       Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.79 sec
-       
-       Results :
-       
-       Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
-    

http://git-wip-us.apache.org/repos/asf/tomee/blob/180f5c5f/examples/cdi-request-scope/README.adoc
----------------------------------------------------------------------
diff --git a/examples/cdi-request-scope/README.adoc 
b/examples/cdi-request-scope/README.adoc
new file mode 100644
index 0000000..c995db3
--- /dev/null
+++ b/examples/cdi-request-scope/README.adoc
@@ -0,0 +1,162 @@
+= CDI @RequestScoped
+:index-group: CDI
+:jbake-type: page
+:jbake-status: published
+
+This example show the use of `@RequestScoped` annotation for injected objects. 
An object
+which is defined as `@RequestScoped` is created once for every request and is 
shared by all the
+beans that inject it throughout a same request.
+
+== Example
+
+This example depicts a similar scenario to cdi-application-scope. A restaurant 
guest orders
+a soup from the waiter. The order is passed to the chef who prepares it and 
passes it back
+the waiter who in turn delivers it to the guest.
+
+=== Waiter
+
+The `Waiter` session bean receives a request from the test class via the 
`orderSoup()` method.
+A `Soup` insance will be created in this method and will be shared throughout 
the request with
+the `Chef` bean. The method passes the request to the `Chef` bean. It then 
returns the name of
+the soup to the test class.
+
+....
+@Stateless
+public class Waiter {
+
+    @Inject
+    private Soup soup;
+
+    @EJB
+    private Chef chef;
+
+    public String orderSoup(String name){
+        soup.setName(name);
+        return chef.prepareSoup().getName();
+    }
+}
+....
+
+=== Soup
+
+The `Soup` class is an injectable POJO, defined as `@RequestScoped`. This 
means that an instance
+will be created only once for every request and will be shared by all the 
beans injecting it.
+
+....
+@RequestScoped
+public class Soup {
+
+    private String name = "Soup of the day";
+
+    @PostConstruct
+    public void afterCreate() {
+        System.out.println("Soup created");
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name){
+        this.name = name;
+    }
+}
+....
+
+=== Chef
+
+The `Chef` class is a simple session bean with an injected `Soup` field. 
Normally, the soup
+parameter would be passed as a `prepareSoup()` argument, but for the need of 
this example
+it's passed by the request context.
+
+....
+@Stateless
+public class Chef {
+
+    @Inject
+    private Soup soup;
+
+    public Soup prepareSoup() {
+        return soup;
+    }
+}
+....
+
+== Test Case
+
+This is the entry class for this example.
+
+....
+public class RestaurantTest {
+
+    private static String TOMATO_SOUP = "Tomato Soup";
+    private EJBContainer container;
+
+    @EJB
+    private Waiter joe;
+
+    @Before
+    public void startContainer() throws Exception {
+        container = EJBContainer.createEJBContainer();
+        container.getContext().bind("inject", this);
+    }
+
+    @Test
+    public void orderSoup(){
+        String soup = joe.orderSoup(TOMATO_SOUP);
+        assertEquals(TOMATO_SOUP, soup);
+        soup = joe.orderSoup(POTATO_SOUP);
+        assertEquals(POTATO_SOUP, soup);
+    }
+
+    @After
+    public void closeContainer() throws Exception {
+        container.close();
+    }
+}
+....
+
+== Running
+
+In the output you can see that there were two `Soup` instances created - one 
for
+each request.
+
+....
+-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.cdi.requestscope.RestaurantTest
+Apache OpenEJB 7.0.0-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 'javax.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
+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
+....

http://git-wip-us.apache.org/repos/asf/tomee/blob/180f5c5f/examples/cdi-request-scope/README.md
----------------------------------------------------------------------
diff --git a/examples/cdi-request-scope/README.md 
b/examples/cdi-request-scope/README.md
deleted file mode 100644
index 1236fbb..0000000
--- a/examples/cdi-request-scope/README.md
+++ /dev/null
@@ -1,153 +0,0 @@
-index-group=CDI
-type=page
-status=published
-title=CDI @RequestScoped
-~~~~~~
-
-This example show the use of `@RequestScoped` annotation for injected objects. 
An object
-which is defined as `@RequestScoped` is created once for every request and is 
shared by all the
-beans that inject it throughout a same request.
-
-# Example
-
-This example depicts a similar scenario to cdi-application-scope. A restaurant 
guest orders
-a soup from the waiter. The order is passed to the chef who prepares it and 
passes it back
-the waiter who in turn delivers it to the guest.
-
-## Waiter
-
-The `Waiter` session bean receives a request from the test class via the 
`orderSoup()` method.
-A `Soup` insance will be created in this method and will be shared throughout 
the request with
-the `Chef` bean. The method passes the request to the `Chef` bean. It then 
returns the name of
-the soup to the test class. 
-
-    @Stateless
-    public class Waiter {
-
-        @Inject
-        private Soup soup;
-
-        @EJB
-        private Chef chef;
-
-        public String orderSoup(String name){
-            soup.setName(name);
-            return chef.prepareSoup().getName();
-        }
-    }
-
-## Soup
-
-The `Soup` class is an injectable POJO, defined as `@RequestScoped`. This 
means that an instance
-will be created only once for every request and will be shared by all the 
beans injecting it.
-
-    @RequestScoped
-    public class Soup {
-
-        private String name = "Soup of the day";
-
-        @PostConstruct
-        public void afterCreate() {
-            System.out.println("Soup created");
-        }
-
-        public String getName() {
-            return name;
-        }
-
-        public void setName(String name){
-            this.name = name;
-        }
-    }
-
-## Chef
-
-The `Chef` class is a simple session bean with an injected `Soup` field. 
Normally, the soup
-parameter would be passed as a `prepareSoup()` argument, but for the need of 
this example
-it's passed by the request context. 
-
-    @Stateless
-    public class Chef {
-
-        @Inject
-        private Soup soup;
-
-        public Soup prepareSoup() {
-            return soup;
-        }
-    }
-
-# Test Case
-
-This is the entry class for this example.
-
-    public class RestaurantTest {
-
-        private static String TOMATO_SOUP = "Tomato Soup";
-        private EJBContainer container;
-
-        @EJB
-        private Waiter joe;
-
-        @Before
-        public void startContainer() throws Exception {
-            container = EJBContainer.createEJBContainer();
-            container.getContext().bind("inject", this);
-        }
-
-        @Test
-        public void orderSoup(){
-            String soup = joe.orderSoup(TOMATO_SOUP);
-            assertEquals(TOMATO_SOUP, soup);
-            soup = joe.orderSoup(POTATO_SOUP);
-            assertEquals(POTATO_SOUP, soup);
-        }
-
-        @After
-        public void closeContainer() throws Exception {
-            container.close();
-        }
-    }
-
-# Running
-
-In the output you can see that there were two `Soup` instances created - one 
for
-each request.
-
-    -------------------------------------------------------
-     T E S T S
-    -------------------------------------------------------
-    Running org.superbiz.cdi.requestscope.RestaurantTest
-    Apache OpenEJB 7.0.0-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 'javax.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
-    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

http://git-wip-us.apache.org/repos/asf/tomee/blob/180f5c5f/examples/cdi-session-scope/README.adoc
----------------------------------------------------------------------
diff --git a/examples/cdi-session-scope/README.adoc 
b/examples/cdi-session-scope/README.adoc
new file mode 100644
index 0000000..8eb6aa7
--- /dev/null
+++ b/examples/cdi-session-scope/README.adoc
@@ -0,0 +1,124 @@
+= CDI @SessionScoped
+:index-group: CDI
+:jbake-type: page
+:jbake-status: published
+
+This example show the use of `@SessionScoped` annotation for injected objects. 
An object
+which is defined as `@SessionScoped` is created once for every HTTPSession and 
is shared by all the
+beans that inject it throughout the same HTTPSession.
+
+== Run the application:
+
+ mvn clean install tomee:run
+
+== Example
+
+This example has an end point wherein a user provides a request parameter 
'name' which is persisted as a feild in a session scoped bean SessionBean and
+then retrieved through another endpoint.
+
+==== Request
+----
+GET 
http://localhost:8080/cdi-session-scope-8.0.0-SNAPSHOT/set-name?name=Puneeth
+----
+==== Response
+----
+done, go to /name servlet
+----
+
+==== Request
+----
+GET http://localhost:8080/cdi-session-scope-8.0.0-SNAPSHOT/name
+----
+==== Response
+----
+name = \{Puneeth}
+----
+
+=== SessionBean
+
+The annotation @SessionScoped specifies that a bean is session scoped ie there 
will be only one instance of the class associated with a particular
+HTTPSession.
+
+@SessionScoped
+public class SessionBean implements Serializable {
+
+....
+private String name;
+
+public String getName() {
+    return name;
+}
+
+public void setName(String name) {
+    this.name = name;
+} }
+....
+
+=== InputServlet
+
+InputServlet is a generic servlet which is mapped to the url pattern 
'/set-name'.
+The session scoped bean 'SessionBean' has been injected into this servlet, and 
the incoming request parameter is set to the feild name of the bean.
+
+@WebServlet(name = "input-servlet", urlPatterns = {"/set-name"})
+public class InputServlet extends HttpServlet {
+
+....
+@Inject
+private SessionBean bean;
+
+@Override
+protected void service(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
+    final String name = req.getParameter("name");
+    if (name == null || name.isEmpty()) {
+        resp.getWriter().write("please add a parameter name=xxx");
+    } else {
+        bean.setName(name);
+        resp.getWriter().write("done, go to /name servlet");
+    }
+
+} }
+....
+
+=== AnswerBean
+
+AnswerBean is a request scoped bean with an injected 'SessionBean'. It has an 
postconstruct method wherein the value from the sessionBean is retrieved and 
set to a feild.
+
+public class AnswerBean {
+
+....
+@Inject
+private SessionBean bean;
+
+private String value;
+
+@PostConstruct
+public void init() {
+    value = '{' + bean.getName() + '}';
+}
+
+public String value() {
+    return value;
+} }
+....
+
+=== OutputServlet
+
+OutputServlet is another servlet with  'AnswerBean' as an injected feild. When 
'/name' is called the value from 'Answerbean' is read and written to the 
response.
+
+@WebServlet(name = "output-servlet", urlPatterns = {"/name"})
+public class OutputServlet extends HttpServlet {
+
+....
+@Inject
+private AnswerBean bean;
+
+@Override
+protected void service(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
+    final String name = bean.value();
+    if (name == null || name.isEmpty()) {
+        resp.getWriter().write("please go to servlet /set-name please");
+    } else {
+        resp.getWriter().write("name = " + name);
+    }
+} }
+....

http://git-wip-us.apache.org/repos/asf/tomee/blob/180f5c5f/examples/cdi-session-scope/README.md
----------------------------------------------------------------------
diff --git a/examples/cdi-session-scope/README.md 
b/examples/cdi-session-scope/README.md
deleted file mode 100644
index 3ca2080..0000000
--- a/examples/cdi-session-scope/README.md
+++ /dev/null
@@ -1,122 +0,0 @@
-index-group=Unrevised
-type=page
-status=unpublished
-title=CDI @SessionScoped
-~~~~~~
-
-This example show the use of `@SessionScoped` annotation for injected objects. 
An object
-which is defined as `@SessionScoped` is created once for every HTTPSession and 
is shared by all the
-beans that inject it throughout the same HTTPSession.
-
-##### Run the application:
-
-    mvn clean install tomee:run 
-       
-# Example
-
-This example has an end point wherein a user provides a request parameter 
'name' which is persisted as a feild in a session scoped bean SessionBean and 
-then retrieved through another endpoint.
-
-#Request
-
-GET 
http://localhost:8080/cdi-session-scope-8.0.0-SNAPSHOT/set-name?name=Puneeth
-
-#Response
-
-done, go to /name servlet 
-
-#Request
-
-GET http://localhost:8080/cdi-session-scope-8.0.0-SNAPSHOT/name
-
-#Response
-
-name = {Puneeth} 
- 
-##SessionBean
-
-The annotation @SessionScoped specifies that a bean is session scoped ie there 
will be only one instance of the class associated with a particular
-HTTPSession.  
-
-@SessionScoped
-public class SessionBean implements Serializable {
-
-    private String name;
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-}  
-
-##InputServlet
-
-InputServlet is a generic servlet which is mapped to the url pattern 
'/set-name'.
-The session scoped bean 'SessionBean' has been injected into this servlet, and 
the incoming request parameter is set to the feild name of the bean. 
-
-@WebServlet(name = "input-servlet", urlPatterns = {"/set-name"})
-public class InputServlet extends HttpServlet {
-
-    @Inject
-    private SessionBean bean;
-
-    @Override
-    protected void service(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
-        final String name = req.getParameter("name");
-        if (name == null || name.isEmpty()) {
-            resp.getWriter().write("please add a parameter name=xxx");
-        } else {
-            bean.setName(name);
-            resp.getWriter().write("done, go to /name servlet");
-        }
-
-    }
-}
-
-##AnswerBean
-
-AnswerBean is a request scoped bean with an injected 'SessionBean'. It has an 
postconstruct method wherein the value from the sessionBean is retrieved and 
set to a feild.
-
-public class AnswerBean {
-
-    @Inject
-    private SessionBean bean;
-
-    private String value;
-
-    @PostConstruct
-    public void init() {
-        value = '{' + bean.getName() + '}';
-    }
-
-    public String value() {
-        return value;
-    }
-}
-
-##OutputServlet
-
-OutputServlet is another servlet with  'AnswerBean' as an injected feild. When 
'/name' is called the value from 'Answerbean' is read and written to the 
response.
-
-@WebServlet(name = "output-servlet", urlPatterns = {"/name"})
-public class OutputServlet extends HttpServlet {
-
-    @Inject
-    private AnswerBean bean;
-
-    @Override
-    protected void service(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
-        final String name = bean.value();
-        if (name == null || name.isEmpty()) {
-            resp.getWriter().write("please go to servlet /set-name please");
-        } else {
-            resp.getWriter().write("name = " + name);
-        }
-    }
-}
-
-
-

Reply via email to