java stammtisch würzburg - conair
TRANSCRIPT
CONAIR
Java Stammtisch Würzburg24. Mai 2014
_inspired by innovation www.rgigroup.de
AGENDA2
I JEE ArchitectureEJB, JPA, JAX-RS
I REST, AngularJS and Bootstrap
I Print-Outvia Excel (based on XLS Templating Engine)
I Authenticationvia LinkedIn (OAuth 2.0)
I HostingServer Infrastruktur: Apache HTTP Server, Glassfish4, MySQL
I CI / DevOpsCloudbees
I Backupusing Dropbox
_inspired by innovation www.rgigroup.de
PROJECT SOURCES3
https://github.com/mr678/conair
_inspired by innovation www.rgigroup.de
JEE ARCHITECTURE4
EJB, JPA, JAX-RS
ECB PatternI http://www.cs.sjsu.edu/~pearce/modules/patterns/enterprise/ecb/ecb.htmI http://
www.oracle.com/technetwork/issue-archive/2011/11-jan/o11java-195110.html
Boundary: EJB SLSB, JAX-RSController: CDI managed beans (seldom used in ConAIR)Entity: JPA, DTOs (own package for DTO?)
Example: accounting package
_inspired by innovation www.rgigroup.de
REST, ANGULARJS AND BOOTSTRAP5
Strict separation between Ibusiness logic (provided by JAX-RS) and IUI (realised with AngularJS)
REST API is still in progress I URI: api/<plural>/<id>I Communication with DTOs and Map’s
AngularJS (https://angularjs.org/)I Routing, ControllerI Problem: How to handle validation and calculation in UI and backend
Example: travel costs
Twitter Bootstrap (http://getbootstrap.com/)I Component library
_inspired by innovation www.rgigroup.de
PRINT-OUT6
The print out solution is based on xls worksheets which are prepared for printing.
XLS Based Templating Engine
ISyntax similar to AngularJSIFeatures: Replacement, Loop, FormatITemplate location: OneDrive
_inspired by innovation www.rgigroup.de
AUTHENTICATION7
OAUTH2.0 is a nightmare!
Usage of third party library Scribehttps://github.com/fernandezpablo85/scribe-java
//TODO: Interceptor for REST servicesI Interceptor for server side JAX-RS REST servicesI Interceptor for client side AngularJS AJAX services
_inspired by innovation www.rgigroup.de
HOSTING8
I Virtual machine at server4you (8,90€/month)www.server4you.de/vserver/
I Apache HTTP server, Glassfish v4, MySQL 5.1 on RHEL
mod_proxy /etc/httpd/conf.d)
_inspired by innovation www.rgigroup.de
CI / DEVOPS9
I Jenkins @ CloudbeesProblem Amazon E2C
I Packaging: maven-release-plugin
I Deployment: cargo-maven2-pluginCloudbees authorisation by certifcate
I Jenkins configurationmvn release and cargo redeploy
_inspired by innovation www.rgigroup.de
BACKUP10
Backup 2 Dropbox
IAuthenticate via Key for Dropbox Applicationhttps://www.dropbox.com/developers/apps/
IDump MySQL and store server configuartion
Ihttp://blog.matthias-reining.com/backup-a-linux-server-to-dropbox/https://github.com/andreafabrizi/Dropbox-Uploader
_inspired by innovation www.rgigroup.de
UPDATES
@matthiasreiningblog.matthias-reining.dehttp://about.me/matthiasreining
HEAD OFFICEVia San Gregorio, 34 - 20124 MILANOTel. +39 02 6691177Fax +39 02 6692173
FACTORYVia Cesare Pavese 6 - 10015 IVREA, TOTel. +39 0125 618000Fax +39 0125 634059
OFFICE GERMANYPlattnerstr. 2, D-97070 WürzburgTel. +49 931 710 565 46Fax. +49 931 710 565 47
IVREA TURIN MILAN VERONA ROME REGGIO EMILIA BOLOGNA DUBLIN PARIS FRANKFURT WÜRZBURG TUNIS
Matthias ReiningTechnical Manager Insurance-------------------------------------------------------------------------------RGI Deutschland GmbHPlattnerstraße 2, 97070 Würzburg, Deutschlandmob +49 172 9917260 – tel +49 931 710 565 46
mail: [email protected] – web www.rgigroup.de