SlideShare ist ein Scribd-Unternehmen logo
1 von 69
Downloaden Sie, um offline zu lesen
Vaadin with
Java EE 7
Java EE 7
Vaadin
CDI
Addon
Application
architecture
Hack
Hack
Hack
Java
Enterprise Edition 7
Collection of Java Specification
Requests (JSRs)
Collection of Java Specification
Requests (JSRs)
Implemented by app servers
Do you know some
Java EE specs?
Java Persistence
API 2.1 (JPA)

(JSR-338)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Context and 

Dependency

Injection 1.2(CDI)

(JSR-340)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Context and 

Dependency

Injection 1.2(CDI)

(JSR-340)
Interceptors 1.2

(JSR-318)
Java Persistence
API 2.1 (JPA)

(JSR-338)
Enterprise Java
Beans 3.2 (EJB)

(JSR-345)
Java Servlet 3.1

(JSR-340)
Context and 

Dependency

Injection 1.2(CDI)

(JSR-340)
Interceptors 1.2

(JSR-318)
Java Transaction
API 1.2 (JTA)

(JSR-907)
Java Persistence API 2.1
(JPA)
Customer
@Entity
______________________________
@Id

@AutoGenerated

Long id;

@Column(nullable = false)

String name;

Date birthdate;
Customer
@Entity
______________________________
Customer
Id name birthdate
1 Alex 07.02.1984
2 John 18.2.1992
@Id

@AutoGenerated

Long id;

@Column(nullable = false)

String name;

Date birthdate;
Customer
@Id

@AutoGenerated

Long id;

@Column(nullable = false)

String name;

Date birthdate;

@OneToMany(mappedBy=“customer”)

List<Invoice> invoices;
@Entity
______________________________
Customer
Id name birthdate
1 Alex 07.02.1984
2 John 18.2.1992
Invoice
Id customer number
1 1 123
2 1 124
Enterprise Java Beans 3.2 

(EJB)
Business layer services
Enterprise Java Beans
Business layer services
@local and @remote
Enterprise Java Beans
Business layer services
@local and @remote
Enterprise Java Beans
Transaction boundaries
(UI)
CustomerView
(@Remote)
CustomerService

(UI)
CustomerView

@Remote
@Local
(@Remote)
CustomerService

(UI)
CustomerView

(@Stateless)
CustomerService

Bean

@Remote
@Local
@Stateless
@Stateful
@Singleton
(@Stateless)
CustomerService

Bean

(@Stateless)
CustomerService

Bean
(DB)
Customer

Database
@Local
public interface CustomerService {
void storeCustomers(Collection<Customer> customers);
void removeCustomers(Collection<Customer> customers);
Collection<Customer> getAllCustomers()
Optional<Customer> getCustomerByName(String name);
}
@Stateless
public class CustomerServiceBean implements
CustomerService {
@PersistenceContext
private EntityManager em;
public void storeCustomers(Collection<Customer> cu) {
cu.forEach(c -> storeCustomer(c));
}
public void storeCustomer(Customer c) {
em.persist(c);
}
}
Context and 

Dependency

Injection 1.2 (CDI)
Instead of saying new say @Inject
Context and Dependency
Injection
Instead of saying new say @Inject
Decouples code and lets container
manage dependencies
Context and Dependency
Injection
Object references by scopes
Context and Dependency
Injection
@ApplicationScoped
@SessionScoped
@RequestScoped
Context and Dependency
Injection
Object references by scopes
@UIScoped
@ViewScoped
Context and Dependency
Injection
@ApplicationScoped
@SessionScoped
@RequestScoped
Object references by scopes
@Stateless
CustomerService

_________________

@UIScoped
AppUI

_________________

@EJB

CustomerService service;
@Stateless
InvoiceService

@Stateless
CustomerService

_________________

@EJB

InvoiceService invoices;
@UIScoped
AppUI

_________________

@EJB

CustomerService service;
@Stateless
CustomerService

_________________

@EJB

InvoiceService invoices;
@UIScoped
AppUI

_________________

@EJB

CustomerService service;

@Inject

MainMenu mainMenu;

@Inject

User currentUser;
@UIScoped
MainMenu

_________________

@Inject

Event<MenuEvent> menuEventSource;
@Stateless
InvoiceService
@UIScoped
AppUI
_____________________________
@Inject

private MainMenu menu;

@Inject

private ViewManager viewMgr;

@Inject

private User loggedInUser;

<<UIScope>>
MainMenu

ViewManager

<<SessionScope>>
User
<<UIScope>>
MenuBar

Footer

ViewManager

<<SessionScope>>
User

@UIScoped
AppUI
_____________________________
@Inject

private MenuBar menu;

@Inject

private ViewManager viewMgr;

@Inject

private User loggedInUser;

<<UIScope>>
MenuBar

Footer

ViewManager

<<UIScope>>
MenuBar

Footer

ViewManager

<<UIScope>>
MenuBar

ViewManager
Integration to EE through
Vaadin CDI
Managed UI with @CDIUI
Managed UI with @CDIUI
Allows injection with @Inject and @EJB
Easily reference EE objects
Allows injection with @Inject and @EJB
Managed UI with @CDIUI
@CDIUI(“”)
public class AppUI extends UI {
}
@CDIUI(“”)
public class AppUI extends UI {
@Inject
private MainMenu mainMenu;
@Inject
private User currentUser;
@Inject
private ViewManager viewManager;
public void init(VaadinRequest request) {
VerticalLayout layout = new VerticalLayout();
layout.addComponent(mainMenu);
setContent(layout);
}
}
@UIScoped
@UIScoped
UI specific bean references
@UIScoped
UI specific bean references
CDI context for mapping beans per UI
@UIScoped
UI specific bean references
CDI context for mapping beans per UI
@UIScoped
@UIScoped
public class MainMenu extends CustomComponent {
}
@UIScoped
public class MainMenu extends CustomComponent {
@Inject
private Event<NavigationEvent> eventSource;
protected void onMenuItemClicked(MenuItem item) {
eventSource.fireEvent(new NavigationEvent(item));
}
}
@CDIUI(“”)
public class AppUI extends UI {
…
protected void onNavigationEvent(@Observes
NavigationEvent event) {
viewMgr.navigateTo(event.getView());
}
}
Application
Architecture
Client
Browser
View
<<EJB>>
Business
Logic
Server-side-UI
Presenter
<<JPA>>
Persistency
Business Persistency
Client
Browser
View
Server-side-UI
public interface CustomerView extends
ApplicationView<CustomerViewPresenter> {
}
public interface CustomerView extends
ApplicationView<CustomerViewPresenter> {
void populateCustomers(Collection<Customer> customers);
void openEditorFor(Customer customer);
void closeEditor();
void removeTableSelection();
}
Client
Browser
View
Server-side-UI
Presenter
@ViewScoped
public class CustomerViewPresenter extends AbstractPresenter<CustomerView> {
}
@ViewScoped
public class CustomerViewPresenter extends AbstractPresenter<CustomerView> {
@EJB
private CustomerService customerService;
@Override
protected void onViewEnter() {
getView().populateCustomers(customerService.getAllCustomers());
}
}
@ViewScoped
public class CustomerViewPresenter extends AbstractPresenter<CustomerView> {
@EJB
private CustomerService customerService;
@Override
protected void onViewEnter() {
getView().populateCustomers(customerService.getAllCustomers());
}
public void onCustomerSaved(@Observes CustomerSavedEvent event) { … }
public void onCustomerRemoved(@Observes CustomerRemovedEvent event) { … }
public void onCustomerSelected(@Observes CustomerSelectedEvent event) { … }
}
Client
Browser
View
<<EJB>>
Business
Logic
Server-side-UI
Presenter
Business
@Local
public interface CustomerService {
void storeCustomers(Collection<Customer> customers);
void removeCustomers(Collection<Customer> customers);
Collection<Customer> getAllCustomers();
Optional<Customer> getCustomerByUsername(String username);
}
Application
Architecture
@Stateless
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class CustomerServiceBean implements CustomerService {
@PersistenceContext(unitName = "appUnit")
private EntityManager entityManager;
@Override
public void storeCustomers(Collection<Customer> customers) {
customers.forEach(cu -> entityManager.merge(cu));
}
@Override
public Collection<Customer> getAllCustomers() {
return entityManager.createQuery(query).getResultList();
}
…
}
Client
Browser
View
<<EJB>>
Business
Logic
Server-side-UI
Presenter
<<JPA>>
Persistency
Business Persistency
Application
Architecture
@Entity
public class Customer {
@Id
@AutoGenerated
private Long id;
private String name;
@Temporal(DATE)
private Date birthDate;
public boolean isPersisted() {
return id != null;
}
…
}
<persistence-unit name="appUnit" transaction-type="JTA">
<jta-data-source>jdbc/app-backend</jta-data-source>
<class>org.vaadin.example.backend.entity.Customer</class>
<properties>
<property name="…" … />
</properties>
</persistence-unit>
github.com/peterl1084/
customermanager

Weitere ähnliche Inhalte

Was ist angesagt?

Agile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai ShevchenkoAgile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai Shevchenko
Moldova ICT Summit
 

Was ist angesagt? (20)

Vaadin JPAContainer
Vaadin JPAContainerVaadin JPAContainer
Vaadin JPAContainer
 
Vaadin Flow - JavaLand 2018
Vaadin Flow - JavaLand 2018Vaadin Flow - JavaLand 2018
Vaadin Flow - JavaLand 2018
 
Vaadin DevDay 2017 - Web Components
Vaadin DevDay 2017 - Web ComponentsVaadin DevDay 2017 - Web Components
Vaadin DevDay 2017 - Web Components
 
Introduction to Spring's Dependency Injection
Introduction to Spring's Dependency InjectionIntroduction to Spring's Dependency Injection
Introduction to Spring's Dependency Injection
 
Spring IOC advantages and developing spring application sample
Spring IOC advantages and developing spring application sample Spring IOC advantages and developing spring application sample
Spring IOC advantages and developing spring application sample
 
Vaadin DevDay 2017 - Data Binding in Vaadin 8
Vaadin DevDay 2017 - Data Binding in Vaadin 8Vaadin DevDay 2017 - Data Binding in Vaadin 8
Vaadin DevDay 2017 - Data Binding in Vaadin 8
 
Building web apps with Vaadin 8
Building web apps with Vaadin 8 Building web apps with Vaadin 8
Building web apps with Vaadin 8
 
Android应用开发简介
Android应用开发简介Android应用开发简介
Android应用开发简介
 
Vaadin 7 CN
Vaadin 7 CNVaadin 7 CN
Vaadin 7 CN
 
Web Components for Java Developers
Web Components for Java DevelopersWeb Components for Java Developers
Web Components for Java Developers
 
Types of Dependency Injection in Spring
Types of Dependency Injection in SpringTypes of Dependency Injection in Spring
Types of Dependency Injection in Spring
 
Vaadin Components @ Angular U
Vaadin Components @ Angular UVaadin Components @ Angular U
Vaadin Components @ Angular U
 
Spring andspringboot training
Spring andspringboot trainingSpring andspringboot training
Spring andspringboot training
 
Extending Java EE with CDI and JBoss Forge
Extending Java EE with CDI and JBoss ForgeExtending Java EE with CDI and JBoss Forge
Extending Java EE with CDI and JBoss Forge
 
Vaadin Components
Vaadin ComponentsVaadin Components
Vaadin Components
 
OpenWebBeans/Web Beans
OpenWebBeans/Web BeansOpenWebBeans/Web Beans
OpenWebBeans/Web Beans
 
Spring Framework -I
Spring Framework -ISpring Framework -I
Spring Framework -I
 
Keycloak Single Sign-On
Keycloak Single Sign-OnKeycloak Single Sign-On
Keycloak Single Sign-On
 
Dependency injection with unity 2.0 Dmytro Mindra Lohika
Dependency injection with unity 2.0 Dmytro Mindra LohikaDependency injection with unity 2.0 Dmytro Mindra Lohika
Dependency injection with unity 2.0 Dmytro Mindra Lohika
 
Agile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai ShevchenkoAgile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai Shevchenko
 

Ähnlich wie JavaEE with Vaadin - Workshop

Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望
javatwo2011
 

Ähnlich wie JavaEE with Vaadin - Workshop (20)

JavaCro'15 - Web UI best practice integration with Java EE 7 - Peter Lehto
JavaCro'15 - Web UI best practice integration with Java EE 7 - Peter LehtoJavaCro'15 - Web UI best practice integration with Java EE 7 - Peter Lehto
JavaCro'15 - Web UI best practice integration with Java EE 7 - Peter Lehto
 
How to code to code less
How to code to code lessHow to code to code less
How to code to code less
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
 
JBoss AS7 OSDC 2011
JBoss AS7 OSDC 2011JBoss AS7 OSDC 2011
JBoss AS7 OSDC 2011
 
JSF basics
JSF basicsJSF basics
JSF basics
 
Javaee6 Overview
Javaee6 OverviewJavaee6 Overview
Javaee6 Overview
 
Skillwise EJB3.0 training
Skillwise EJB3.0 trainingSkillwise EJB3.0 training
Skillwise EJB3.0 training
 
To inject or not to inject: CDI is the question
To inject or not to inject: CDI is the questionTo inject or not to inject: CDI is the question
To inject or not to inject: CDI is the question
 
SpringBootCompleteBootcamp.pptx
SpringBootCompleteBootcamp.pptxSpringBootCompleteBootcamp.pptx
SpringBootCompleteBootcamp.pptx
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUG
 
Building Modern Apps using Android Architecture Components
Building Modern Apps using Android Architecture ComponentsBuilding Modern Apps using Android Architecture Components
Building Modern Apps using Android Architecture Components
 
Context and Dependency Injection
Context and Dependency InjectionContext and Dependency Injection
Context and Dependency Injection
 
ADVANCED JAVA MODULE I & II.ppt
ADVANCED JAVA MODULE I & II.pptADVANCED JAVA MODULE I & II.ppt
ADVANCED JAVA MODULE I & II.ppt
 
Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013
Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013
Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望
 
OpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConOpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheCon
 
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
 
DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)DataFX 8 (JavaOne 2014)
DataFX 8 (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
 
Play Support in Cloud Foundry
Play Support in Cloud FoundryPlay Support in Cloud Foundry
Play Support in Cloud Foundry
 

Mehr von Peter Lehto

Mehr von Peter Lehto (6)

Vaadin 8 and 10
Vaadin 8 and 10Vaadin 8 and 10
Vaadin 8 and 10
 
Vaadin 8 - Data Binding with Binder
Vaadin 8 - Data Binding with BinderVaadin 8 - Data Binding with Binder
Vaadin 8 - Data Binding with Binder
 
GWT integration with Vaadin
GWT integration with VaadinGWT integration with Vaadin
GWT integration with Vaadin
 
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)
 
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.createRemote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
 
WebApp controlled Parrot AR Drone with Vaadin and Spring Boot
WebApp controlled Parrot AR Drone with Vaadin and Spring BootWebApp controlled Parrot AR Drone with Vaadin and Spring Boot
WebApp controlled Parrot AR Drone with Vaadin and Spring Boot
 

Kürzlich hochgeladen

( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
nilamkumrai
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
imonikaupta
 
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 

Kürzlich hochgeladen (20)

Wagholi & High Class Call Girls Pune Neha 8005736733 | 100% Gennuine High Cla...
Wagholi & High Class Call Girls Pune Neha 8005736733 | 100% Gennuine High Cla...Wagholi & High Class Call Girls Pune Neha 8005736733 | 100% Gennuine High Cla...
Wagholi & High Class Call Girls Pune Neha 8005736733 | 100% Gennuine High Cla...
 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
 
Real Escorts in Al Nahda +971524965298 Dubai Escorts Service
Real Escorts in Al Nahda +971524965298 Dubai Escorts ServiceReal Escorts in Al Nahda +971524965298 Dubai Escorts Service
Real Escorts in Al Nahda +971524965298 Dubai Escorts Service
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
 
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
 
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
 
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 

JavaEE with Vaadin - Workshop