diff --git a/exercise1/EJB.java b/exercise1/EJB.java new file mode 100644 index 0000000..48f3c78 --- /dev/null +++ b/exercise1/EJB.java @@ -0,0 +1,55 @@ +package exercise1; + +import javax.ejb.Local; +import javax.ejb.LocalBean; +import javax.ejb.Stateless; +import javax.inject.Inject; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * Created by Giovanni on 24/05/2015. + */ +@Stateless +@LocalBean +public class EJB implements RemoteInterface { + + @PersistenceContext(unitName = "exercise1") + EntityManager em ; + + + public void create_student (@NotNull Student s) { + em.persist(s); + } + public void update_student (@NotNull Student s) { + em.merge(s); + em.persist(s); + } + public void delete_student (@NotNull Student s) { + em.merge(s); + em.remove(s); + } + + public @NotNull List findname (@NotNull String name) { + Query Q = em.createNamedQuery("findname"); + Q.setParameter(1, name); + return (List)Q.getResultList(); + } + + public @NotNull List findsurname (@NotNull String name) { + Query Q = em.createNamedQuery("findsurname"); + Q.setParameter(1,name); + return (List)Q.getResultList(); + } + + public @NotNull List findyear (@NotNull String name) { + Query Q = em.createNamedQuery("findyear"); + Q.setParameter(1,name); + return (List)Q.getResultList(); + } + + +} diff --git a/exercise1/InitializeDB.java b/exercise1/InitializeDB.java new file mode 100644 index 0000000..9a04e42 --- /dev/null +++ b/exercise1/InitializeDB.java @@ -0,0 +1,40 @@ +package exercise1; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; +import javax.ejb.*; +import javax.inject.Inject; + +/** + * Created by Giovanni on 24/05/2015. + */ + +@Singleton +@Startup +public class InitializeDB { + + private Student s1,s2; + + @Inject + private EJB e; + + @PostConstruct + void pupulate (){ + s1 = new Student("mario","marra","1"); + s2 = new Student("mario","maria","2"); + e.create_student(s1); + e.create_student(s2); + } + + @PreDestroy + void delete () { + e.delete_student(s1); + e.delete_student(s2); + } + + + + + + +} diff --git a/exercise1/RemoteInterface.java b/exercise1/RemoteInterface.java new file mode 100644 index 0000000..809a841 --- /dev/null +++ b/exercise1/RemoteInterface.java @@ -0,0 +1,18 @@ +package exercise1; + +import javax.ejb.Remote; +import javax.persistence.Query; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * Created by Giovanni on 24/05/2015. + */ +@Remote +public interface RemoteInterface { + + @NotNull List findname (@NotNull String name); + @NotNull List findsurname (@NotNull String name) ; + @NotNull List findyear (@NotNull String name) ; + +} diff --git a/exercise1/Student.java b/exercise1/Student.java new file mode 100644 index 0000000..8aa6dfa --- /dev/null +++ b/exercise1/Student.java @@ -0,0 +1,52 @@ +package exercise1; + +import javax.ejb.Local; +import javax.persistence.*; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * Created by Giovanni on 24/05/2015. + */ +@Entity +@NamedQueries({ + @NamedQuery(name = "findname", query = "SELECT s FROM Student s WHERE s.name =?1"), + @NamedQuery(name = "findsurname", query = "SELECT s FROM Student s WHERE s.surname =?1"), + @NamedQuery(name = "findyear", query = "SELECT s FROM Student s WHERE s.years =?1") +}) +public class Student implements Serializable { + + @Id + @GeneratedValue + private Long id; + + @NotNull + private String name; + @NotNull + private String surname; + @NotNull + private String years; + + + public Student(){} + + public Student (@NotNull String in_name, @NotNull String in_surname, @NotNull String in_year){ + + name = in_name; + surname = in_surname; + years = in_year; + + } + + public @NotNull String getName() { + return name; + } + + public @NotNull String getSurname() { + return surname; + } + + public @NotNull String getYears() { + return years; + } +} diff --git a/exercise1_client/client.java b/exercise1_client/client.java new file mode 100644 index 0000000..4412c04 --- /dev/null +++ b/exercise1_client/client.java @@ -0,0 +1,43 @@ +package exercise1_client; + +import exercise1.RemoteInterface; +import exercise1.Student; + +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.naming.NamingException; +import java.util.Iterator; +import java.util.List; + +/** + * Created by Giovanni on 24/05/2015. + */ +public class client { + + public static void main (String[] args) { + + + Context ctx = null; + try { + ctx =new InitialContext(); + } catch (NamingException e) { + e.printStackTrace(); + } + + RemoteInterface r = null; + try { + r =(RemoteInterface) ctx.lookup("java:global/web/EJB!exercise1.RemoteInterface"); + Listl = r.findname("mario"); + Iterator it = l.iterator(); + System.out.println(it.next().getSurname()); + System.out.println(it.next().getSurname()); + + + } catch (NamingException e) { + e.printStackTrace(); + } + + + + } +} diff --git a/servlet/Servletexercise1.java b/servlet/Servletexercise1.java new file mode 100644 index 0000000..8e8d926 --- /dev/null +++ b/servlet/Servletexercise1.java @@ -0,0 +1,57 @@ +package servlet; + +import test3_persistence.store_class; +import test3_persistence.test_class; + +import javax.ejb.EJB; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +/** + * Created by Giovanni on 25/04/2015. + */ + +@WebServlet(name = "Servletexercise1") +public class Servletexercise1 extends HttpServlet { + + + protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { +/* TODO output your page here. */ + + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet xg"); + out.println(""); + out.println(""); + out.println("

Servlet xg at " + request.getContextPath() + "

"); + + + + out.println(""); + out.println(""); + } + } + + + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + processRequest(request, response); + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + processRequest(request, response); + + } +} diff --git a/servlet/Servlettest2.java b/servlet/Servlettest2.java index ece0c5b..bc042d7 100644 --- a/servlet/Servlettest2.java +++ b/servlet/Servlettest2.java @@ -47,6 +47,10 @@ public class Servlettest2 extends HttpServlet { class_with_builtin_constraints class_with_builtin_constraints; + @Inject + class_test_method class_test_method; + + protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { @@ -61,6 +65,10 @@ public class Servlettest2 extends HttpServlet { out.println("

Servlet xg at " + request.getContextPath() + "

"); + ///////////////// check null return + //class_test_method.test_method(); + //out.println("Test Null without validator"); + //out.println("
"); ///////////////// entire class validation @@ -123,7 +131,7 @@ public class Servlettest2 extends HttpServlet { out.println("
"); - //////////////// check single property + //////////////// check single property without make an instance of the object Set> violations7 = validator.validateValue(class_with_builtin_constraints.class, "title", "aabb"); if (violations7.size() > 0) out.println("error"); else out.println("tutto ok"); diff --git a/test2_constraints_validation/class_test_method.java b/test2_constraints_validation/class_test_method.java new file mode 100644 index 0000000..d83622e --- /dev/null +++ b/test2_constraints_validation/class_test_method.java @@ -0,0 +1,14 @@ +package test2_constraints_validation; + +import javax.validation.constraints.NotNull; + +/** + * Created by Giovanni on 24/05/2015. + */ +public class class_test_method { + + public @NotNull Object test_method(){ + return null; + } + +}