[weld-commits] Weld SVN: r6698 - archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Sat Jul 17 14:00:14 EDT 2010


Author: sboscarine
Date: 2010-07-17 14:00:14 -0400 (Sat, 17 Jul 2010)
New Revision: 6698

Added:
   archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberResourceRESTService.java
Removed:
   archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberResource.java
Modified:
   archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberRepository.java
   archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberRepositoryProducer.java
Log:
minor refactor, updated comments

Modified: archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberRepository.java
===================================================================
--- archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberRepository.java	2010-07-17 17:01:36 UTC (rev 6697)
+++ archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberRepository.java	2010-07-17 18:00:14 UTC (rev 6698)
@@ -8,9 +8,13 @@
 import javax.inject.Qualifier;
 
 /**
- * A qualifier used to differentiate between multiple data repositories
+ * A qualifier used to differentiate between multiple data repositories. 
+ * 
+ * If you only have 1 EntityManager, this annotation is optional
  */
 @Qualifier
- at Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
+ at Target({ ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER })
 @Retention(RetentionPolicy.RUNTIME)
-public @interface MemberRepository {}
+public @interface MemberRepository
+{
+}

Modified: archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberRepositoryProducer.java
===================================================================
--- archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberRepositoryProducer.java	2010-07-17 17:01:36 UTC (rev 6697)
+++ archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberRepositoryProducer.java	2010-07-17 18:00:14 UTC (rev 6698)
@@ -3,7 +3,9 @@
 import javax.enterprise.inject.Produces;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
-
+/**
+ * This class uses CDI to produce @MemberRepository EntityManagers.
+ */
 public class MemberRepositoryProducer
 {
    @Produces

Deleted: archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberResource.java
===================================================================
--- archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberResource.java	2010-07-17 17:01:36 UTC (rev 6697)
+++ archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberResource.java	2010-07-17 18:00:14 UTC (rev 6698)
@@ -1,30 +0,0 @@
-package com.mycompany;
-
-import java.util.List;
-import javax.enterprise.context.RequestScoped;
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-
- at Path("/members")
- at RequestScoped
-public class MemberResource
-{
-   @Inject @MemberRepository
-   private EntityManager em;
-
-   @GET
-   public List<Member> getMembers()
-   {
-      return em.createQuery("select m from Member m order by m.name").getResultList();
-   }
-
-   @GET
-   @Path("/{id:[1-9][0-9]*}")
-   public Member getMember(@PathParam("id") long id)
-   {
-      return em.find(Member.class, id);
-   }
-}

Copied: archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberResourceRESTService.java (from rev 6697, archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberResource.java)
===================================================================
--- archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberResourceRESTService.java	                        (rev 0)
+++ archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/MemberResourceRESTService.java	2010-07-17 18:00:14 UTC (rev 6698)
@@ -0,0 +1,38 @@
+package com.mycompany;
+
+import java.util.List;
+import javax.enterprise.context.RequestScoped;
+import javax.inject.Inject;
+import javax.persistence.EntityManager;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+/**
+ * JAX-RS Example
+ * 
+ *  This class alone produces a RESTful service to read the contents of the members table.   
+ */
+ at Path("/members")
+ at RequestScoped
+public class MemberResourceRESTService
+{
+   private static final String ALL_MEMBERS = "select m from Member m order by m.name";
+   @Inject
+   @MemberRepository
+   private EntityManager em;
+
+   @GET
+   public List<Member> listAllMembers()
+   {
+      @SuppressWarnings("unchecked")   //Force IDE to ignore warnings about "genericizing" the results of this query
+      final List<Member> results = em.createQuery(ALL_MEMBERS).getResultList();
+      return results;
+   }
+
+   @GET
+   @Path("/{id:[1-9][0-9]*}")
+   public Member lookupMemberById(@PathParam("id") long id)
+   {
+      return em.find(Member.class, id);
+   }
+}



More information about the weld-commits mailing list