This document summarizes several graduation projects completed by students under the guidance of Erwin de Gier as their technical coach. It describes projects involving building a registration system using code generation, a remote presentation environment using websockets, and a knowledge mapping application using Java EE and Angular JS. It also discusses technologies used like Java EE, JPA, EJB, Servlets, JSF, Jsoup, bean validation, and protocols like Stomp and WAMP for websockets.
2. Java EE, REST,
AngularJS, Code
generation,
Erwin de Gier
generation,
Websockets, NoSQL
Erwin de Gier
Sogeti Java CoE
Amsterdam, September 2015
3. WhoAmI
• Erwin de Gier
• Software Architect• Software Architect
• Coach Young Professionals
• Technical coach graduation
assignments
3
4. Introduction
• Graduation assignments, the technical
sideside
• Product owner / Technical coach
• Research topic (technology selection)
• Development of an application
4
8. Generating HTML
public class Employee {
private String firstname;private String firstname;
private String lastname;
private Date birthday;
}
8
9. Java Reflection API
for(Field field : employee.getClass().getDeclaredFields()){
Element div = new Element(Tag.valueOf("div"), "");
//Generate Label//Generate Label
Element label = createLabel(field.getName());
div.appendChild(label);
//Check type of field (String, Date, Number, etc.
Class<?> type = field.getType();
//Generate input field
Element input = createInput(type);
div.appendChild(input);
}
9
10. JSoup and Servlets
protected void doGet(HttpServletRequest request,
HttpServletResponse response){
Element page = generateHTML(request,response);Element page = generateHTML(request,response);
String html = page.html();
request.setAttribute("html",html);
}
<h:outputText value="${html}" />
10
11. JSR 303 Bean validation
public class Employee {
@NotNull
@Size(Max=25)@Size(Max=25)
@CustomMessage(message="Use at most 25 characters")
private String firstname;
@Temporal(javax.persistence.TemporalType.DATE)
private Date birthday;
@Hidden
private long id;
}
11
}
12. Pros / Cons
• Pros:
• No manual HTML work (Costs / Time)
• Consistent look and feel, use of• Consistent look and feel, use of
components
• Validation on client and server
• Cons:
• Investment
• Only suits CRUD-like operations
12
• Only suits CRUD-like operations
• Pages must use standard structure
13. In summary
• Java EE
• JPA, EJB, Servlets, JSF• JPA, EJB, Servlets, JSF
• Custom HTML Generator
• Jsoup
• Bean validation
• Java Reflection API
13
• Java Reflection API
18. Problem with websockets
• Low level protocol
• No receipt conformation• No receipt conformation
• No messages types
• No standard headers
• No heartbeat
• Every project implements own
18
• Every project implements own
messaging system
24. Summary
• Protocol functions
• Available client and server libraries• Available client and server libraries
• Standards / community support
• Maturity
• After the protocol selection is made
the client and server technology can be
24
the client and server technology can be
selected
25. Knowledge Map
• Project management
• Skill insufficiencies• Skill insufficiencies
• Quality control
• Currently Excel
25