SlideShare a Scribd company logo
1 of 20
Setting up a free Java e-commerce 
webshop 
(including cloud deployment) 
For GDG Fresno 
On 10/10/2014, Bitwise Industries, 
Presented by Csaba Toth
Background 
• Startup Weekend Fresno 
• Event starts: Friday 5:30 PM, Sept. 5, 2014 
• Event ends: Sunday 9:30 PM, Sept. 7, 2014 
• Clock started sometimes around 10 PM on 
Friday, I joined team Pro-Pack, a subscription 
based dietary supplement company 
• Clock effectively ended on 6 PM Sunday (final 
product pitch)
E-commerce websites 
• Saturday morning: searching for existing 
solutions 
– Java Pet Store Demo 
– JadaSite http://www.jadasite.com/ 
– KonaKart http://www.konakart.com/ 
– Apache OFBiz https://ofbiz.apache.org/ 
– Broadleaf http://www.broadleafcommerce.org/ 
– …
Java Pet Store Demo 
• Originally was an example for Java J2EE 
• Can be beneficial to study the source 
• Has payment module stub 
• Has shipping module stub 
• Demonstrates pure Java EE (no Spring 
Framework)
Java Enterprise Edition Platform 
• Extends the Java Standard Edition Platform 
– ORM (Object Relationship Mapping) in the form of JPA 
(Java Persistency API) 
– Distributed and multi-tier architectures 
– EJB support (Enterprise Java Beans) 
– JMS (Java Messaging Services) 
– CDI: Contexts and Dependency Injection 
– JSF: Java Server Faces for front-end UI 
– Web Services 
• Modularity 
• Many application servers which can host JEE apps
Java Enterprise Edition Platform 
Specification Java EE 6[6] Java EE 7[3] 
Servlet 3.0 3.1 
JavaServer Pages (JSP) 2.2 2.3 
Unified Expression Language (EL) 2.2 3.0 
Debugging Support for Other Languages (JSR-45) 1.0 1.0 
JavaServer Pages Standard Tag Library (JSTL) 1.2 1.2 
JavaServer Faces (JSF) 2.0 2.2 
Java API for RESTful Web Services (JAX-RS) 1.1 2.0 
Java API for WebSocket (WebSocket) n/a 1.0 
Java API for JSON Processing (JSON-P) n/a 1.0 
Common Annotations for the Java Platform (JSR-250) 1.1 1.2 
Enterprise JavaBeans (EJB) 3.1 Lite 3.2 Lite 
Java Transaction API (JTA) 1.1 1.2 
Java Persistence API (JPA) 2.0 2.1 
Bean Validation 1.0 1.1 
Managed Beans 1.0 1.0 
Interceptors 1.1 1.2 
Contexts and Dependency Injection for the Java EE Platform 1.0 1.1 
Dependency Injection for Java 1.0 1.0
Example 
Entity Bean
Example JSF
Three-tier/layer Architecture 
• Three-tier 
– Data 
– Services / Business logic 
– User Interface 
• For data access: ORM 
• For modular architecture and SOA: 
Dependency Injection 
• UI layer: often MVC technology, templating 
engines
Architecture 
UI client side 
UI server side (MVC controllers and models) 
EJBs Service Oriented Architecture 
ORM: JPA, Hibernate, iBatis, etc. 
DB 
DAO 
CDI 
config 
Configuration 
UI layer 
Services / 
Middle / 
Business 
layer 
Data 
access 
layer 
JDBC 
Data-base 
Backing Beans, DTOs
Common properties 
• Use of Java EE 
• Maven: de-facto standard nowadays (Gradle is 
coming up though) 
– Declarative make/build system 
– Suggest best-practice directory hierarchy (see later) 
– Testing 
– Deployment 
– Documentation generation 
– … everything!
Java Pet Store Demo 
• https://github.com/stephanrauh/agoncal-petstore- 
JSE7-ajax 
– Technologies : BabbageFaces, PrimeFaces 5+, 
Bootstrap, Angular JS, Java EE 6 
• https://github.com/agoncal/agoncal-application- 
petstore-ee6 
– JSF front-end, also Java EE 6 
• Application Servers : GlassFish 3.x, JBoss 7.x, 
TomEE 1.x
JadaSite 
• http://www.jadasite.com/ 
• http://www.jadasite.com/jada/web/fe/jadasite/English 
/content/Documentation 
• http://www.jadasite.com/jada/web/fe/jadasite/English 
/content/Features 
• Can be deployed on any J2EE application servers 
including Apache Tomcat, Sun GlassFish, BEA Weblogic, 
IBM Websphere, etc. 
• Compatible with MySQL, SQLServer, Oracle database 
server, etc. 
• Template based design, with template editor
KonaKart 
• http://www.konakart.com/ 
• All functionality is available through a set of APIs (POJO, 
JSON, SOAP, RMI, JavaScript) 
• JSP UI 
• http://www.konakart.com/product/features/shopping-experience 
• Apache Solr search 
• FedEx UPS and USPS shipping modules, dozen of 
payment modules 
• Demo: http://www.konakart.com/konakart/ 
• Some of the core libraries and middleware are not open 
source!
Apache OFBiz 
• https://ofbiz.apache.org/ 
• https://cwiki.apache.org/confluence/display/ 
OFBTECH/Framework+Introduction+Videos+a 
nd+Diagrams 
• https://cwiki.apache.org/confluence/downloa 
d/attachments/7045155/01MainDiagram.pdf? 
version=1&modificationDate=1267053493000 
&api=v2
Broadleaf 
• http://www.broadleafcommerce.org/ 
• Spring framework: provides dependency injection, 
modularization framework. Also supports security, MVC UI, 
etc. 
• UI: earlier versions GWT, newer version Spring MVC 
• Hibernate ORM layer, Oracle, MySQL, PostgreSQL, SQL 
Server are supported 
• Thymeleaf UI templating engine, integrated with Spring 
MVC 
• Apache Solr based search 
• Spring enabled REST Service endpoints 
• Demo site: http://demo.broadleafcommerce.org/
Broadleaf 
• Source codes: 
– The framework itself: 
• https://github.com/BroadleafCommerce/BroadleafCommerce 
– The demo site source code: 
• https://github.com/BroadleafCommerce/DemoSite 
– Pro-Pack site source code: 
• https://github.com/MrCsabaToth/ProPackSource 
• The demo sites have the broadleaf libraries as Maven 
dependencies 
• Disadvantage: demo sites cart checkout wasn’t mobile 
compatible right out of the box
Moving into the cloud 
• Amazon AWS: IaaS offering of Amazon 
– tiny instance (small CPU 1GB memory, 8GB HDD) 
– Ubuntu Server edition OS 
– Getting cryptographic key for simple SSH login 
– Configuring firewall and security policy 
– Installing DB (MySql) and App Server (Tomcat) 
• Main hurdles: 
– App couldn’t access DB because of privileges 
– JVM memory ran out: -Xmx was 128MB by default
Webshop 
• Domain name from go.co, startup-weekend 
promotion 
• http://pro-pack.co/ 
• Also AWS credit for startup weekend 
• New: the original VM went down, and I don’t 
control the domain name, so it’s point’s to a 
wrong IP 
– Current webshop: http://54.183.117.8:8080/propack
Questions 
• Thanks for attending!

More Related Content

What's hot

SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi   SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi Sencha
 
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...Sencha
 
Scalable Integration with JBoss Fuse
Scalable Integration with JBoss FuseScalable Integration with JBoss Fuse
Scalable Integration with JBoss FuseChristina Lin
 
Top 12 php frameworks 2016
Top 12 php frameworks 2016Top 12 php frameworks 2016
Top 12 php frameworks 2016ValueCoders
 
Drupal performance optimization Best Practices
Drupal performance optimization Best PracticesDrupal performance optimization Best Practices
Drupal performance optimization Best PracticesRatnesh kumar, CSM
 
Single page apps with drupal 7
Single page apps with drupal 7Single page apps with drupal 7
Single page apps with drupal 7Chris Tankersley
 
Wordpress optimization
Wordpress optimizationWordpress optimization
Wordpress optimizationAlmog Baku
 
Introdcution to Adobe CQ
Introdcution to Adobe CQIntrodcution to Adobe CQ
Introdcution to Adobe CQRest West
 
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charityIntegrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charityKrzysztof Sobkowiak
 
Introduction to Cakephp
Introduction to CakephpIntroduction to Cakephp
Introduction to CakephpAditya Mooley
 
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShiftReal-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShiftChristian Posta
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBYuval Ararat
 
Earnings With Foss - Joebert
Earnings With Foss - JoebertEarnings With Foss - Joebert
Earnings With Foss - Joebertsoss
 
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...Nexcess.net LLC
 
Speeding up your WordPress site - WordCamp Hamilton 2015
Speeding up your WordPress site - WordCamp Hamilton 2015Speeding up your WordPress site - WordCamp Hamilton 2015
Speeding up your WordPress site - WordCamp Hamilton 2015Alan Lok
 
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
EasyEngine - Command-Line tool to manage WordPress Sites on NginxEasyEngine - Command-Line tool to manage WordPress Sites on Nginx
EasyEngine - Command-Line tool to manage WordPress Sites on NginxrtCamp
 
Front-end build tools - Webpack
Front-end build tools - WebpackFront-end build tools - Webpack
Front-end build tools - WebpackRazvan Rosu
 
Microsoft/Zend Webcast on Cloud Computing
Microsoft/Zend Webcast on Cloud ComputingMicrosoft/Zend Webcast on Cloud Computing
Microsoft/Zend Webcast on Cloud ComputingJosh Holmes
 

What's hot (20)

SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi   SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
 
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
 
Scalable Integration with JBoss Fuse
Scalable Integration with JBoss FuseScalable Integration with JBoss Fuse
Scalable Integration with JBoss Fuse
 
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško VukmanovićJavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
 
Top 12 php frameworks 2016
Top 12 php frameworks 2016Top 12 php frameworks 2016
Top 12 php frameworks 2016
 
Drupal performance optimization Best Practices
Drupal performance optimization Best PracticesDrupal performance optimization Best Practices
Drupal performance optimization Best Practices
 
Single page apps with drupal 7
Single page apps with drupal 7Single page apps with drupal 7
Single page apps with drupal 7
 
Wordpress optimization
Wordpress optimizationWordpress optimization
Wordpress optimization
 
Introdcution to Adobe CQ
Introdcution to Adobe CQIntrodcution to Adobe CQ
Introdcution to Adobe CQ
 
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charityIntegrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
 
Introduction to Cakephp
Introduction to CakephpIntroduction to Cakephp
Introduction to Cakephp
 
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShiftReal-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDB
 
Earnings With Foss - Joebert
Earnings With Foss - JoebertEarnings With Foss - Joebert
Earnings With Foss - Joebert
 
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
 
Speeding up your WordPress site - WordCamp Hamilton 2015
Speeding up your WordPress site - WordCamp Hamilton 2015Speeding up your WordPress site - WordCamp Hamilton 2015
Speeding up your WordPress site - WordCamp Hamilton 2015
 
Lenguajes y plataformas de desarrollo
Lenguajes y plataformas de desarrolloLenguajes y plataformas de desarrollo
Lenguajes y plataformas de desarrollo
 
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
EasyEngine - Command-Line tool to manage WordPress Sites on NginxEasyEngine - Command-Line tool to manage WordPress Sites on Nginx
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
 
Front-end build tools - Webpack
Front-end build tools - WebpackFront-end build tools - Webpack
Front-end build tools - Webpack
 
Microsoft/Zend Webcast on Cloud Computing
Microsoft/Zend Webcast on Cloud ComputingMicrosoft/Zend Webcast on Cloud Computing
Microsoft/Zend Webcast on Cloud Computing
 

Viewers also liked

Online Shopping Website Project with Java & Primefaces
Online Shopping Website Project with Java & PrimefacesOnline Shopping Website Project with Java & Primefaces
Online Shopping Website Project with Java & PrimefacesT C
 
Online Shopping Full Project Presentation (20 slides)
Online Shopping Full Project Presentation (20 slides)Online Shopping Full Project Presentation (20 slides)
Online Shopping Full Project Presentation (20 slides)Krishna Mohan Shakya
 
Temparate Broadleaf Deciduous Forest
Temparate Broadleaf Deciduous ForestTemparate Broadleaf Deciduous Forest
Temparate Broadleaf Deciduous ForestAlvin Borromeo
 
Open Admin
Open AdminOpen Admin
Open Adminbpolster
 
Dynamically Generate a CRUD Admin Panel with Java Annotations
Dynamically Generate a CRUD Admin Panel with Java AnnotationsDynamically Generate a CRUD Admin Panel with Java Annotations
Dynamically Generate a CRUD Admin Panel with Java AnnotationsBroadleaf Commerce
 
JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 telosys
 
Shootout! template engines on the jvm
Shootout! template engines on the jvmShootout! template engines on the jvm
Shootout! template engines on the jvmNLJUG
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 
E-commerce Project Development
E-commerce Project DevelopmentE-commerce Project Development
E-commerce Project DevelopmentAmin Chowdhury
 
How Global Trends are Shaping the Retail Technology of the Future
How Global Trends are Shaping the Retail Technology of the FutureHow Global Trends are Shaping the Retail Technology of the Future
How Global Trends are Shaping the Retail Technology of the FutureNational Retail Federation
 
Testdrive AngularJS with Spring 4
Testdrive AngularJS with Spring 4Testdrive AngularJS with Spring 4
Testdrive AngularJS with Spring 4Oliver Wahlen
 
E commerce ( system analysis ) chapter 4
E commerce ( system analysis ) chapter 4E commerce ( system analysis ) chapter 4
E commerce ( system analysis ) chapter 4Qamar Farooq
 
INTERSPORT e-Commerce with Divante
INTERSPORT e-Commerce with DivanteINTERSPORT e-Commerce with Divante
INTERSPORT e-Commerce with DivanteDivante
 
E-Commerce Technology
E-Commerce TechnologyE-Commerce Technology
E-Commerce TechnologyDivante
 
Magento implementation - by Divante.co
Magento implementation - by Divante.coMagento implementation - by Divante.co
Magento implementation - by Divante.coDivante
 
E-Commerce Case Studies
E-Commerce Case StudiesE-Commerce Case Studies
E-Commerce Case StudiesDivante
 
Caso de estudio - Optimizacion de Google Adwords
Caso de estudio - Optimizacion de Google AdwordsCaso de estudio - Optimizacion de Google Adwords
Caso de estudio - Optimizacion de Google AdwordsSugerendo
 
Desarrollo de extensión en Magento
Desarrollo de extensión en MagentoDesarrollo de extensión en Magento
Desarrollo de extensión en MagentoSugerendo
 
B2B eCommerce, estado, desafíos y oportunidades
B2B eCommerce, estado, desafíos y oportunidadesB2B eCommerce, estado, desafíos y oportunidades
B2B eCommerce, estado, desafíos y oportunidadesSugerendo
 

Viewers also liked (20)

Online Shopping Website Project with Java & Primefaces
Online Shopping Website Project with Java & PrimefacesOnline Shopping Website Project with Java & Primefaces
Online Shopping Website Project with Java & Primefaces
 
Online Shopping Full Project Presentation (20 slides)
Online Shopping Full Project Presentation (20 slides)Online Shopping Full Project Presentation (20 slides)
Online Shopping Full Project Presentation (20 slides)
 
Temparate Broadleaf Deciduous Forest
Temparate Broadleaf Deciduous ForestTemparate Broadleaf Deciduous Forest
Temparate Broadleaf Deciduous Forest
 
Open Admin
Open AdminOpen Admin
Open Admin
 
Dynamically Generate a CRUD Admin Panel with Java Annotations
Dynamically Generate a CRUD Admin Panel with Java AnnotationsDynamically Generate a CRUD Admin Panel with Java Annotations
Dynamically Generate a CRUD Admin Panel with Java Annotations
 
JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014
 
Shootout! template engines on the jvm
Shootout! template engines on the jvmShootout! template engines on the jvm
Shootout! template engines on the jvm
 
GUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EEGUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EE
 
E-commerce Project Development
E-commerce Project DevelopmentE-commerce Project Development
E-commerce Project Development
 
How Global Trends are Shaping the Retail Technology of the Future
How Global Trends are Shaping the Retail Technology of the FutureHow Global Trends are Shaping the Retail Technology of the Future
How Global Trends are Shaping the Retail Technology of the Future
 
Testdrive AngularJS with Spring 4
Testdrive AngularJS with Spring 4Testdrive AngularJS with Spring 4
Testdrive AngularJS with Spring 4
 
E commerce ( system analysis ) chapter 4
E commerce ( system analysis ) chapter 4E commerce ( system analysis ) chapter 4
E commerce ( system analysis ) chapter 4
 
INTERSPORT e-Commerce with Divante
INTERSPORT e-Commerce with DivanteINTERSPORT e-Commerce with Divante
INTERSPORT e-Commerce with Divante
 
E-Commerce Technology
E-Commerce TechnologyE-Commerce Technology
E-Commerce Technology
 
Magento implementation - by Divante.co
Magento implementation - by Divante.coMagento implementation - by Divante.co
Magento implementation - by Divante.co
 
E-Commerce Case Studies
E-Commerce Case StudiesE-Commerce Case Studies
E-Commerce Case Studies
 
Caso de estudio - Optimizacion de Google Adwords
Caso de estudio - Optimizacion de Google AdwordsCaso de estudio - Optimizacion de Google Adwords
Caso de estudio - Optimizacion de Google Adwords
 
Desarrollo de extensión en Magento
Desarrollo de extensión en MagentoDesarrollo de extensión en Magento
Desarrollo de extensión en Magento
 
B2B eCommerce, estado, desafíos y oportunidades
B2B eCommerce, estado, desafíos y oportunidadesB2B eCommerce, estado, desafíos y oportunidades
B2B eCommerce, estado, desafíos y oportunidades
 

Similar to Setting up a free open source java e-commerce website

Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Arun Gupta
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGArun Gupta
 
01 overview-and-setup
01 overview-and-setup01 overview-and-setup
01 overview-and-setupsnopteck
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerArun Gupta
 
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionJava EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionArun Gupta
 
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Skills Matter
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Arun Gupta
 
Java EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the futureJava EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the futureArun Gupta
 
Basic method for Java EE Web Profile
Basic method for Java EE Web ProfileBasic method for Java EE Web Profile
Basic method for Java EE Web ProfileKenji HASUNUMA
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Arun Gupta
 
The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of JavaFu Cheng
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsPavel Bucek
 
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected BusinessWSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected BusinessWSO2
 
OSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P KriensOSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P Kriensmfrancis
 

Similar to Setting up a free open source java e-commerce website (20)

Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
 
01 overview-and-setup
01 overview-and-setup01 overview-and-setup
01 overview-and-setup
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
 
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionJava EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
 
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
 
01 java intro
01 java intro01 java intro
01 java intro
 
Java EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the futureJava EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the future
 
Advance java1.1
Advance java1.1Advance java1.1
Advance java1.1
 
Basic method for Java EE Web Profile
Basic method for Java EE Web ProfileBasic method for Java EE Web Profile
Basic method for Java EE Web Profile
 
JSF2
JSF2JSF2
JSF2
 
Java platform
Java platformJava platform
Java platform
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
 
The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of Java
 
Jsp Comparison
 Jsp Comparison Jsp Comparison
Jsp Comparison
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise Applications
 
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected BusinessWSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
 
WSO2 AppDev platform
WSO2 AppDev platformWSO2 AppDev platform
WSO2 AppDev platform
 
OSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P KriensOSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P Kriens
 

More from Csaba Toth

Git, GitHub gh-pages and static websites
Git, GitHub gh-pages and static websitesGit, GitHub gh-pages and static websites
Git, GitHub gh-pages and static websitesCsaba Toth
 
Eclipse RCP Demo
Eclipse RCP DemoEclipse RCP Demo
Eclipse RCP DemoCsaba Toth
 
The Health of Networks
The Health of NetworksThe Health of Networks
The Health of NetworksCsaba Toth
 
Introduction to Google BigQuery
Introduction to Google BigQueryIntroduction to Google BigQuery
Introduction to Google BigQueryCsaba Toth
 
Column Stores and Google BigQuery
Column Stores and Google BigQueryColumn Stores and Google BigQuery
Column Stores and Google BigQueryCsaba Toth
 
Windows 10 preview
Windows 10 previewWindows 10 preview
Windows 10 previewCsaba Toth
 
Developing Multi Platform Games using PlayN and TriplePlay Framework
Developing Multi Platform Games using PlayN and TriplePlay FrameworkDeveloping Multi Platform Games using PlayN and TriplePlay Framework
Developing Multi Platform Games using PlayN and TriplePlay FrameworkCsaba Toth
 
Trends and future of java
Trends and future of javaTrends and future of java
Trends and future of javaCsaba Toth
 
Google Compute Engine
Google Compute EngineGoogle Compute Engine
Google Compute EngineCsaba Toth
 
Google App Engine
Google App EngineGoogle App Engine
Google App EngineCsaba Toth
 
CCJUG inaugural meeting and Adopt a JSR
CCJUG inaugural meeting and Adopt a JSRCCJUG inaugural meeting and Adopt a JSR
CCJUG inaugural meeting and Adopt a JSRCsaba Toth
 
Google Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App EngineGoogle Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App EngineCsaba Toth
 
Hive and Pig for .NET User Group
Hive and Pig for .NET User GroupHive and Pig for .NET User Group
Hive and Pig for .NET User GroupCsaba Toth
 
Hadoop and Mapreduce for .NET User Group
Hadoop and Mapreduce for .NET User GroupHadoop and Mapreduce for .NET User Group
Hadoop and Mapreduce for .NET User GroupCsaba Toth
 
Introduction to Hadoop and MapReduce
Introduction to Hadoop and MapReduceIntroduction to Hadoop and MapReduce
Introduction to Hadoop and MapReduceCsaba Toth
 
Introduction into windows 8 application development
Introduction into windows 8 application developmentIntroduction into windows 8 application development
Introduction into windows 8 application developmentCsaba Toth
 
Ups and downs of enterprise Java app in a research setting
Ups and downs of enterprise Java app in a research settingUps and downs of enterprise Java app in a research setting
Ups and downs of enterprise Java app in a research settingCsaba Toth
 
Adopt a JSR NJUG edition
Adopt a JSR NJUG editionAdopt a JSR NJUG edition
Adopt a JSR NJUG editionCsaba Toth
 

More from Csaba Toth (18)

Git, GitHub gh-pages and static websites
Git, GitHub gh-pages and static websitesGit, GitHub gh-pages and static websites
Git, GitHub gh-pages and static websites
 
Eclipse RCP Demo
Eclipse RCP DemoEclipse RCP Demo
Eclipse RCP Demo
 
The Health of Networks
The Health of NetworksThe Health of Networks
The Health of Networks
 
Introduction to Google BigQuery
Introduction to Google BigQueryIntroduction to Google BigQuery
Introduction to Google BigQuery
 
Column Stores and Google BigQuery
Column Stores and Google BigQueryColumn Stores and Google BigQuery
Column Stores and Google BigQuery
 
Windows 10 preview
Windows 10 previewWindows 10 preview
Windows 10 preview
 
Developing Multi Platform Games using PlayN and TriplePlay Framework
Developing Multi Platform Games using PlayN and TriplePlay FrameworkDeveloping Multi Platform Games using PlayN and TriplePlay Framework
Developing Multi Platform Games using PlayN and TriplePlay Framework
 
Trends and future of java
Trends and future of javaTrends and future of java
Trends and future of java
 
Google Compute Engine
Google Compute EngineGoogle Compute Engine
Google Compute Engine
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
CCJUG inaugural meeting and Adopt a JSR
CCJUG inaugural meeting and Adopt a JSRCCJUG inaugural meeting and Adopt a JSR
CCJUG inaugural meeting and Adopt a JSR
 
Google Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App EngineGoogle Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App Engine
 
Hive and Pig for .NET User Group
Hive and Pig for .NET User GroupHive and Pig for .NET User Group
Hive and Pig for .NET User Group
 
Hadoop and Mapreduce for .NET User Group
Hadoop and Mapreduce for .NET User GroupHadoop and Mapreduce for .NET User Group
Hadoop and Mapreduce for .NET User Group
 
Introduction to Hadoop and MapReduce
Introduction to Hadoop and MapReduceIntroduction to Hadoop and MapReduce
Introduction to Hadoop and MapReduce
 
Introduction into windows 8 application development
Introduction into windows 8 application developmentIntroduction into windows 8 application development
Introduction into windows 8 application development
 
Ups and downs of enterprise Java app in a research setting
Ups and downs of enterprise Java app in a research settingUps and downs of enterprise Java app in a research setting
Ups and downs of enterprise Java app in a research setting
 
Adopt a JSR NJUG edition
Adopt a JSR NJUG editionAdopt a JSR NJUG edition
Adopt a JSR NJUG edition
 

Recently uploaded

The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Anthony Dahanne
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 

Recently uploaded (20)

The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 

Setting up a free open source java e-commerce website

  • 1. Setting up a free Java e-commerce webshop (including cloud deployment) For GDG Fresno On 10/10/2014, Bitwise Industries, Presented by Csaba Toth
  • 2. Background • Startup Weekend Fresno • Event starts: Friday 5:30 PM, Sept. 5, 2014 • Event ends: Sunday 9:30 PM, Sept. 7, 2014 • Clock started sometimes around 10 PM on Friday, I joined team Pro-Pack, a subscription based dietary supplement company • Clock effectively ended on 6 PM Sunday (final product pitch)
  • 3. E-commerce websites • Saturday morning: searching for existing solutions – Java Pet Store Demo – JadaSite http://www.jadasite.com/ – KonaKart http://www.konakart.com/ – Apache OFBiz https://ofbiz.apache.org/ – Broadleaf http://www.broadleafcommerce.org/ – …
  • 4. Java Pet Store Demo • Originally was an example for Java J2EE • Can be beneficial to study the source • Has payment module stub • Has shipping module stub • Demonstrates pure Java EE (no Spring Framework)
  • 5. Java Enterprise Edition Platform • Extends the Java Standard Edition Platform – ORM (Object Relationship Mapping) in the form of JPA (Java Persistency API) – Distributed and multi-tier architectures – EJB support (Enterprise Java Beans) – JMS (Java Messaging Services) – CDI: Contexts and Dependency Injection – JSF: Java Server Faces for front-end UI – Web Services • Modularity • Many application servers which can host JEE apps
  • 6. Java Enterprise Edition Platform Specification Java EE 6[6] Java EE 7[3] Servlet 3.0 3.1 JavaServer Pages (JSP) 2.2 2.3 Unified Expression Language (EL) 2.2 3.0 Debugging Support for Other Languages (JSR-45) 1.0 1.0 JavaServer Pages Standard Tag Library (JSTL) 1.2 1.2 JavaServer Faces (JSF) 2.0 2.2 Java API for RESTful Web Services (JAX-RS) 1.1 2.0 Java API for WebSocket (WebSocket) n/a 1.0 Java API for JSON Processing (JSON-P) n/a 1.0 Common Annotations for the Java Platform (JSR-250) 1.1 1.2 Enterprise JavaBeans (EJB) 3.1 Lite 3.2 Lite Java Transaction API (JTA) 1.1 1.2 Java Persistence API (JPA) 2.0 2.1 Bean Validation 1.0 1.1 Managed Beans 1.0 1.0 Interceptors 1.1 1.2 Contexts and Dependency Injection for the Java EE Platform 1.0 1.1 Dependency Injection for Java 1.0 1.0
  • 9. Three-tier/layer Architecture • Three-tier – Data – Services / Business logic – User Interface • For data access: ORM • For modular architecture and SOA: Dependency Injection • UI layer: often MVC technology, templating engines
  • 10. Architecture UI client side UI server side (MVC controllers and models) EJBs Service Oriented Architecture ORM: JPA, Hibernate, iBatis, etc. DB DAO CDI config Configuration UI layer Services / Middle / Business layer Data access layer JDBC Data-base Backing Beans, DTOs
  • 11. Common properties • Use of Java EE • Maven: de-facto standard nowadays (Gradle is coming up though) – Declarative make/build system – Suggest best-practice directory hierarchy (see later) – Testing – Deployment – Documentation generation – … everything!
  • 12. Java Pet Store Demo • https://github.com/stephanrauh/agoncal-petstore- JSE7-ajax – Technologies : BabbageFaces, PrimeFaces 5+, Bootstrap, Angular JS, Java EE 6 • https://github.com/agoncal/agoncal-application- petstore-ee6 – JSF front-end, also Java EE 6 • Application Servers : GlassFish 3.x, JBoss 7.x, TomEE 1.x
  • 13. JadaSite • http://www.jadasite.com/ • http://www.jadasite.com/jada/web/fe/jadasite/English /content/Documentation • http://www.jadasite.com/jada/web/fe/jadasite/English /content/Features • Can be deployed on any J2EE application servers including Apache Tomcat, Sun GlassFish, BEA Weblogic, IBM Websphere, etc. • Compatible with MySQL, SQLServer, Oracle database server, etc. • Template based design, with template editor
  • 14. KonaKart • http://www.konakart.com/ • All functionality is available through a set of APIs (POJO, JSON, SOAP, RMI, JavaScript) • JSP UI • http://www.konakart.com/product/features/shopping-experience • Apache Solr search • FedEx UPS and USPS shipping modules, dozen of payment modules • Demo: http://www.konakart.com/konakart/ • Some of the core libraries and middleware are not open source!
  • 15. Apache OFBiz • https://ofbiz.apache.org/ • https://cwiki.apache.org/confluence/display/ OFBTECH/Framework+Introduction+Videos+a nd+Diagrams • https://cwiki.apache.org/confluence/downloa d/attachments/7045155/01MainDiagram.pdf? version=1&modificationDate=1267053493000 &api=v2
  • 16. Broadleaf • http://www.broadleafcommerce.org/ • Spring framework: provides dependency injection, modularization framework. Also supports security, MVC UI, etc. • UI: earlier versions GWT, newer version Spring MVC • Hibernate ORM layer, Oracle, MySQL, PostgreSQL, SQL Server are supported • Thymeleaf UI templating engine, integrated with Spring MVC • Apache Solr based search • Spring enabled REST Service endpoints • Demo site: http://demo.broadleafcommerce.org/
  • 17. Broadleaf • Source codes: – The framework itself: • https://github.com/BroadleafCommerce/BroadleafCommerce – The demo site source code: • https://github.com/BroadleafCommerce/DemoSite – Pro-Pack site source code: • https://github.com/MrCsabaToth/ProPackSource • The demo sites have the broadleaf libraries as Maven dependencies • Disadvantage: demo sites cart checkout wasn’t mobile compatible right out of the box
  • 18. Moving into the cloud • Amazon AWS: IaaS offering of Amazon – tiny instance (small CPU 1GB memory, 8GB HDD) – Ubuntu Server edition OS – Getting cryptographic key for simple SSH login – Configuring firewall and security policy – Installing DB (MySql) and App Server (Tomcat) • Main hurdles: – App couldn’t access DB because of privileges – JVM memory ran out: -Xmx was 128MB by default
  • 19. Webshop • Domain name from go.co, startup-weekend promotion • http://pro-pack.co/ • Also AWS credit for startup weekend • New: the original VM went down, and I don’t control the domain name, so it’s point’s to a wrong IP – Current webshop: http://54.183.117.8:8080/propack
  • 20. Questions • Thanks for attending!