diff --git a/cdi/README.md b/cdi/README.md index 24f431b75..b80caf6c2 100644 --- a/cdi/README.md +++ b/cdi/README.md @@ -24,6 +24,9 @@ The [JSR 346](https://jcp.org/en/jsr/detail?id=346) updates and clarifications t - nobeans-el-injection - nobeans-el-injection-flowscoped - events + - events-conditional-reception + - instance + - instance-qualifiers ## How to run diff --git a/cdi/beanmanager/pom.xml b/cdi/beanmanager/pom.xml index 227646024..3bc43f077 100644 --- a/cdi/beanmanager/pom.xml +++ b/cdi/beanmanager/pom.xml @@ -1,20 +1,15 @@ - - 4.0.0 + + 4.0.0 - - org.javaee7 - cdi - 1.0-SNAPSHOT - ../pom.xml - - org.javaee7 - cdi-beanmanager - 1.0-SNAPSHOT - war - Java EE 7 Sample: cdi - beanmanager + + org.javaee7 + cdi + 1.0-SNAPSHOT + + cdi-beanmanager + Java EE 7 Sample: cdi - beanmanager - - gfv3ee6 - diff --git a/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/Greeting.java b/cdi/beanmanager/src/main/java/org/javaee7/cdi/beanmanager/Greeting.java similarity index 69% rename from cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/Greeting.java rename to cdi/beanmanager/src/main/java/org/javaee7/cdi/beanmanager/Greeting.java index 6c4aa4cc9..5e4ab2641 100644 --- a/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/Greeting.java +++ b/cdi/beanmanager/src/main/java/org/javaee7/cdi/beanmanager/Greeting.java @@ -1,4 +1,4 @@ -package org.javaee7.cdisamples.beanmanager; +package org.javaee7.cdi.beanmanager; /** * @author Arun Gupta diff --git a/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/SimpleGreeting.java b/cdi/beanmanager/src/main/java/org/javaee7/cdi/beanmanager/SimpleGreeting.java similarity index 80% rename from cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/SimpleGreeting.java rename to cdi/beanmanager/src/main/java/org/javaee7/cdi/beanmanager/SimpleGreeting.java index 1eea9fba6..8e34ccf7d 100644 --- a/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/SimpleGreeting.java +++ b/cdi/beanmanager/src/main/java/org/javaee7/cdi/beanmanager/SimpleGreeting.java @@ -1,4 +1,4 @@ -package org.javaee7.cdisamples.beanmanager; +package org.javaee7.cdi.beanmanager; /** * @author Arun Gupta diff --git a/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/SmileyGreeting.java b/cdi/beanmanager/src/main/java/org/javaee7/cdi/beanmanager/SmileyGreeting.java similarity index 81% rename from cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/SmileyGreeting.java rename to cdi/beanmanager/src/main/java/org/javaee7/cdi/beanmanager/SmileyGreeting.java index d0de2d9c1..f06f3c754 100644 --- a/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/SmileyGreeting.java +++ b/cdi/beanmanager/src/main/java/org/javaee7/cdi/beanmanager/SmileyGreeting.java @@ -1,4 +1,4 @@ -package org.javaee7.cdisamples.beanmanager; +package org.javaee7.cdi.beanmanager; /** * @author Arun Gupta diff --git a/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/TestServletCurrent.java b/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/TestServletCurrent.java deleted file mode 100644 index ca7343964..000000000 --- a/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/TestServletCurrent.java +++ /dev/null @@ -1,95 +0,0 @@ -package org.javaee7.cdisamples.beanmanager; - -import java.io.IOException; -import java.io.PrintWriter; -import java.util.Set; -import javax.enterprise.inject.spi.Bean; -import javax.enterprise.inject.spi.BeanManager; -import javax.enterprise.inject.spi.CDI; -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * @author Arun Gupta - */ -@WebServlet(urlPatterns = { "/TestServletCurrent" }) -public class TestServletCurrent extends HttpServlet { - - /** - * Processes requests for both HTTP - * GET and - * POST methods. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - protected void processRequest(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - response.setContentType("text/html;charset=UTF-8"); - try (PrintWriter out = response.getWriter()) { - out.println(""); - out.println(""); - out.println(""); - out.println("BeanManager using CDI.current"); - out.println(""); - out.println(""); - out.println("

BeanManager using CDI.current

"); - // Second way to get BeanManager - BeanManager bm = CDI.current().getBeanManager(); - - Set> beans = bm.getBeans(Greeting.class); - for (Bean b : beans) { - out.println(b.getBeanClass().getName() + "
"); - } - out.println(""); - out.println(""); - } - } - - // - /** - * Handles the HTTP - * GET method. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - processRequest(request, response); - } - - /** - * Handles the HTTP - * POST method. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - processRequest(request, response); - } - - /** - * Returns a short description of the servlet. - * - * @return a String containing servlet description - */ - @Override - public String getServletInfo() { - return "Short description"; - }// - -} diff --git a/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/TestServletInject.java b/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/TestServletInject.java deleted file mode 100644 index 6c11b4c1d..000000000 --- a/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/TestServletInject.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.javaee7.cdisamples.beanmanager; - -import java.io.IOException; -import java.io.PrintWriter; -import java.util.Set; -import javax.enterprise.inject.spi.Bean; -import javax.enterprise.inject.spi.BeanManager; -import javax.inject.Inject; -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * @author Arun Gupta - */ -@WebServlet(urlPatterns = { "/TestServletInject" }) -public class TestServletInject extends HttpServlet { - - // First way to get BeanManager - @Inject - BeanManager bm; - - /** - * Processes requests for both HTTP - * GET and - * POST methods. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - protected void processRequest(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - response.setContentType("text/html;charset=UTF-8"); - try (PrintWriter out = response.getWriter()) { - out.println(""); - out.println(""); - out.println(""); - out.println("BeanManager using Injection"); - out.println(""); - out.println(""); - out.println("

BeanManager using Injection

"); - Set> beans = bm.getBeans(Greeting.class); - for (Bean b : beans) { - out.println(b.getBeanClass().getName() + "
"); - } - out.println(""); - out.println(""); - } - } - - // - /** - * Handles the HTTP - * GET method. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - processRequest(request, response); - } - - /** - * Handles the HTTP - * POST method. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - processRequest(request, response); - } - - /** - * Returns a short description of the servlet. - * - * @return a String containing servlet description - */ - @Override - public String getServletInfo() { - return "Short description"; - }// - -} diff --git a/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/TestServletJNDI.java b/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/TestServletJNDI.java deleted file mode 100644 index 99d5bedc8..000000000 --- a/cdi/beanmanager/src/main/java/org/javaee7/cdisamples/beanmanager/TestServletJNDI.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.javaee7.cdisamples.beanmanager; - -import java.io.IOException; -import java.io.PrintWriter; -import java.util.Set; -import java.util.logging.Level; -import java.util.logging.Logger; -import javax.enterprise.inject.spi.Bean; -import javax.enterprise.inject.spi.BeanManager; -import javax.naming.InitialContext; -import javax.naming.NamingException; -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * @author Arun Gupta - */ -@WebServlet(urlPatterns = { "/TestServletJNDI" }) -public class TestServletJNDI extends HttpServlet { - - /** - * Processes requests for both HTTP - * GET and - * POST methods. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - protected void processRequest(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - response.setContentType("text/html;charset=UTF-8"); - try (PrintWriter out = response.getWriter()) { - out.println(""); - out.println(""); - out.println(""); - out.println("BeanManager using JNDI"); - out.println(""); - out.println(""); - out.println("

BeanManager using JNDI

"); - // Third way to get BeanManager - BeanManager bm = null; - try { - InitialContext context = new InitialContext(); - bm = (BeanManager) context.lookup("java:comp/BeanManager"); - } catch (NamingException | NullPointerException ex) { - ex.printStackTrace(out); - } - Set> beans = bm.getBeans(Greeting.class); - for (Bean b : beans) { - out.println(b.getBeanClass().getName() + "
"); - } - out.println(""); - out.println(""); - } - } - - // - /** - * Handles the HTTP - * GET method. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - processRequest(request, response); - } - - /** - * Handles the HTTP - * POST method. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - processRequest(request, response); - } - - /** - * Returns a short description of the servlet. - * - * @return a String containing servlet description - */ - @Override - public String getServletInfo() { - return "Short description"; - }// - -} diff --git a/cdi/beanmanager/src/main/webapp/WEB-INF/beans.xml b/cdi/beanmanager/src/main/webapp/WEB-INF/beans.xml deleted file mode 100644 index e69de29bb..000000000 diff --git a/cdi/beanmanager/src/main/webapp/index.jsp b/cdi/beanmanager/src/main/webapp/index.jsp deleted file mode 100644 index f72da678c..000000000 --- a/cdi/beanmanager/src/main/webapp/index.jsp +++ /dev/null @@ -1,62 +0,0 @@ - -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - - CDI : BeanManager - - -

CDI : BeanManager

- - Show the list of beans using BeanManager by: -
    -
  1. injection -
  2. CDI.current -
  3. JNDI -
- - - diff --git a/cdi/beanmanager/src/test/java/org/javaee7/cdi/beanmanager/GreetingTest.java b/cdi/beanmanager/src/test/java/org/javaee7/cdi/beanmanager/GreetingTest.java new file mode 100644 index 000000000..222c596fd --- /dev/null +++ b/cdi/beanmanager/src/test/java/org/javaee7/cdi/beanmanager/GreetingTest.java @@ -0,0 +1,71 @@ +package org.javaee7.cdi.beanmanager; + +import org.jboss.arquillian.container.test.api.Deployment; +import org.jboss.arquillian.junit.Arquillian; +import org.jboss.shrinkwrap.api.Archive; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.Test; +import org.junit.runner.RunWith; + +import javax.enterprise.inject.spi.Bean; +import javax.enterprise.inject.spi.BeanManager; +import javax.enterprise.inject.spi.CDI; +import javax.inject.Inject; +import javax.naming.InitialContext; +import java.util.HashSet; +import java.util.Set; + +import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; + +/** + * @author Radim Hanus + */ +@RunWith(Arquillian.class) +public class GreetingTest { + @Deployment + public static Archive deploy() { + return ShrinkWrap.create(JavaArchive.class) + .addClasses(Greeting.class, SimpleGreeting.class, SmileyGreeting.class) + .addAsManifestResource("beans.xml"); + } + + // First way to get BeanManager + @Inject + private BeanManager bm; + + @Test + public void testInject() throws Exception { + test(this.bm); + } + + @Test + public void testCurrent() throws Exception { + // Second way to get BeanManager: current CDI container + BeanManager bm = CDI.current().getBeanManager(); + + test(bm); + } + + @Test + public void testJNDI() throws Exception { + // Third way to get BeanManager: name service + BeanManager bm = InitialContext.doLookup("java:comp/BeanManager"); + + test(bm); + } + + private void test(BeanManager bm) throws Exception { + Set> beans = bm.getBeans(Greeting.class); + assertTrue(beans.size() == 2); + + Set beanClassNames = new HashSet<>(); + for (Bean bean : beans) { + beanClassNames.add(bean.getBeanClass().getName()); + } + + assertThat(beanClassNames, containsInAnyOrder(SimpleGreeting.class.getName(), SmileyGreeting.class.getName())); + } +} diff --git a/cdi/beanmanager/src/test/resources/beans.xml b/cdi/beanmanager/src/test/resources/beans.xml new file mode 100644 index 000000000..be95b1d6e --- /dev/null +++ b/cdi/beanmanager/src/test/resources/beans.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/cdi/events-conditional-reception/pom.xml b/cdi/events-conditional-reception/pom.xml index b5e94b7cd..7205781b3 100644 --- a/cdi/events-conditional-reception/pom.xml +++ b/cdi/events-conditional-reception/pom.xml @@ -9,5 +9,5 @@ ../pom.xml cdi-events-conditional-reception - Java EE 7 Sample: conditional reception of cdi events + Java EE 7 Sample: cdi - events-conditional-reception
diff --git a/cdi/instance-qualifiers/pom.xml b/cdi/instance-qualifiers/pom.xml index 46d71cf4b..d47968f8b 100644 --- a/cdi/instance-qualifiers/pom.xml +++ b/cdi/instance-qualifiers/pom.xml @@ -12,6 +12,6 @@ cdi-instance-qualifiers - Java EE 7 Sample: cdi/instance-qualifiers + Java EE 7 Sample: cdi - instance-qualifiers \ No newline at end of file diff --git a/cdi/instance/pom.xml b/cdi/instance/pom.xml index 309e9ff8b..d745d9961 100644 --- a/cdi/instance/pom.xml +++ b/cdi/instance/pom.xml @@ -11,6 +11,6 @@ cdi-instance - Java EE 7 Sample: cdi/instance + Java EE 7 Sample: cdi - instance \ No newline at end of file