EJB applications guided by tests Jakub Marchwicki

Size: px
Start display at page:

Download "EJB applications guided by tests Jakub Marchwicki"

Transcription

1 EJB applications guided by tests Jakub Marchwicki

2 ?

3 pain The experiment

4 pain The experiment nb of slides

5 The experiment 20 slides pain Severe health risk OK nb of slides

6 The experiment 60 slides + IDE pain Severe health risk OK nb of slides

7

8 It started a year ago

9 GeeCon Poznań

10 GeeCon Poznań

11 But in fact it started much earlier JBoss 4.x Taking form 7 to 20 minutes to start No CI environment

12 Delivery a feature with only a single deploy

13 The Good Embedded container Your test is you component Focused integration testing

14 INFO INFO -- Configuring Configuring Service(id=Default Service(id=Default Security Security Service, Service, type=securityservice, provider-id=default Security type=securityservice, provider-id=default Security Service) Service) INFO Configuring Service(id=Default Transaction Manager, INFO - Configuring Service(id=Default Transaction Manager, type=transactionmanager, type=transactionmanager, provider-id=default provider-id=default Transaction Transaction Manager) Manager) INFO Creating TransactionManager(id=Default Transaction INFO - Creating TransactionManager(id=Default Transaction Manager) Manager) INFO INFO -- Creating Creating SecurityService(id=Default SecurityService(id=Default Security Security Service) Service) INFO INFO -- Configuring Configuring enterprise enterprise application: application: /home/kubam/workspaces/java/various/jee-examples/stockapp/stockapp-ejb/home/kubam/workspaces/java/various/jee-examples/stockapp/stockapp-ejbopenejbtest/dozerquotationconverterintegrationtest openejbtest/dozerquotationconverterintegrationtest INFO INFO -- Auto-deploying Auto-deploying ejb ejb DozerConverterCache: DozerConverterCache: EjbDeployment(deploymentEjbDeployment(deploymentid=DozerConverterCache) id=dozerconvertercache) INFO INFO -- Auto-deploying Auto-deploying ejb ejb DozerQuotationConverter: DozerQuotationConverter: EjbDeployment(deploymentEjbDeployment(deploymentid=DozerQuotationConverter) id=dozerquotationconverter) INFO INFO -- Configuring Configuring Service(id=Default Service(id=Default Managed Managed Container, Container, type=container, type=container, provider-id=default ManagedContainer) provider-id=default ManagedContainer) INFO INFO -- Auto-creating Auto-creating aa container container for for bean bean pl.marchwicki.jee.stockapp.ejb.dozerquotationconverterintegrationtest: pl.marchwicki.jee.stockapp.ejb.dozerquotationconverterintegrationtest: Container(type=MANAGED, Container(type=MANAGED, id=default id=default Managed Managed Container) Container) INFO INFO -- Creating Creating Container(id=Default Container(id=Default Managed Managed Container) Container)

15 class class HelloWorldServiceIntegrationTest HelloWorldServiceLocal HelloWorldServiceLocal void void shouldreturnhello() shouldreturnhello() {{ assertequals(helloworldservice.sayhello("jakub"), assertequals(helloworldservice.sayhello("jakub"), "Hello! "Hello! Jakub"); Jakub"); //... //...

16 class class AuditMessageReceiverTest AuditMessageReceiverTest {{ final final String String originaltestmessage originaltestmessage == "Hello "Hello World!"; World!"; EntityManager EntityManager void void processqueue() processqueue() throws throws JMSException JMSException {{ List<AuditLog> List<AuditLog> list list == em.createquery("from em.createquery("from AuditLog", AuditLog", AuditLog.class).getResultList(); AuditLog.class).getResultList(); assertnotnull(list); assertnotnull(list); assertequals(1, assertequals(1, list.size()); list.size()); assertequals(originaltestmessage, assertequals(originaltestmessage, list.get(0).getmessage()); list.get(0).getmessage()); //.. //..

17 class class AuditMessageProcessorTest == "ConnectionFactory", "ConnectionFactory", mappedname mappedname == "ConnectionFactory") "ConnectionFactory") ConnectionFactory ConnectionFactory == "queue/audit", "queue/audit", mappedname mappedname == "queue/audit") "queue/audit") Queue Queue == 2000) 2000) void processqueue() void processqueue() throws throws Exception Exception {{ final final Connection Connection connection connection == connectionfactory.createconnection(); connectionfactory.createconnection(); connection.start(); connection.start(); final final Session Session session session == connection.createsession(false, connection.createsession(false, Session.AUTO_ACKNOWLEDGE); Session.AUTO_ACKNOWLEDGE); final final MessageConsumer MessageConsumer incoming incoming == session.createconsumer(queue); session.createconsumer(queue); Message Message receive receive == incoming.receive(); incoming.receive(); assertthat(receive, assertthat(receive, new new IsInstanceOf(TextMessage.class)); IsInstanceOf(TextMessage.class)); assertequals(originaltestmessage, assertequals(originaltestmessage, ((TextMessage) ((TextMessage) receive).gettext()); receive).gettext()); //... //...

18 class class HelloWorldServiceIntegrationTest void void shouldcallwebservice() shouldcallwebservice() throws throws Exception Exception {{ URL URL wsdldocumentlocation wsdldocumentlocation == new new URL(" URL(" wsdl"); wsdl"); String String namespaceuri namespaceuri == " " String String servicepart servicepart == "HelloWorldServiceService"; "HelloWorldServiceService"; QName QName serviceqn serviceqn == new new QName(namespaceURI, QName(namespaceURI, servicepart); servicepart); Service Service service service == Service.create(wsdlDocumentLocation, Service.create(wsdlDocumentLocation, serviceqn); serviceqn); HelloWorldServiceLocal HelloWorldServiceLocal helloworld helloworld == service.getport(helloworldservicelocal.class); service.getport(helloworldservicelocal.class); String String ss == helloworld.sayhello("jakub"); helloworld.sayhello("jakub"); assertequals("hello! assertequals("hello! Jakub", Jakub", s); s); //... //...

19 The Bad Differences between containers Vagueness of the EJB spec No test with the actual server

20 JNDI tree {deploymentid} / {interfaceclass} {appname} / {modulename} / {beanname} But where it s localted? java: app/* java: comp/env/* java: global/*

21 Multiple names interface interface Service Service {{ String String hello(); hello();

22 Multiple names interface interface Service Service {{ String String class class MyService MyService implements implements Service Service {{ String String hello() hello() {{ return return "Hello "Hello world!"; world!";

23 Multiple names interface interface Service Service {{ String String class class MyService MyService implements implements Service Service {{ { String String hello() return return "Hello "Hello world!"; world!"; class class MyOtherService MyOtherService implements implements Service Service {{ String String hello() hello() {{ return return "Hello "Hello GeeCON!"; GeeCON!";

24 Multiple names interface interface Service Service {{ class class Client class class MyService MyService Service {{ Service Service service; Service service; String { String hello() return "Hello world!"; return "Hello world!"; class class MyOtherService MyOtherService implements implements void init() {{ void init() System.out.println(service.hello()); Service Service {{ System.out.println(service.hello()); String String hello() hello() {{ return return "Hello "Hello GeeCON!"; GeeCON!";

25 DEPLOYMENTS DEPLOYMENTS IN IN ERROR: ERROR: Deployment "vfs:///opt/java/jbossdeployment "vfs:///opt/java/jboss6.1.0.final/server/default/deploy/module.jar" Final/server/default/deploy/module.jar" is is in in error error due due to to the the following following reason(s): reason(s): java.lang.runtimeexception: java.lang.runtimeexception: Specified Specified reference reference [EJB [EJB Reference: Reference: beaninterface beaninterface 'pl.marchwicki.jee6.service', 'pl.marchwicki.jee6.service', beanname beanname 'null', mappedname 'null', lookupname 'null', owning unit 'null', mappedname 'null', lookupname 'null', owning unit ssenterprisebeanmetadata.client}'] ssenterprisebeanmetadata.client}'] was was matched matched by by more more than than one one EJB: EJB: vice}, vice}, rservice}]. rservice}]. Specify Specify beanname beanname explciitly explciitly or or ensure ensure beaninterface beaninterface is is unique. unique.

26 INFO: INFO: Created Created Ejb(deployment-id=Client, Ejb(deployment-id=Client, ejb-name=client, ejb-name=client, container=my container=my Singleton Container) Singleton Container) May May 11, 11, :23:24 4:23:24 PM PM org.apache.openejb.assembler.classic.assembler org.apache.openejb.assembler.classic.assembler startejbs startejbs INFO: INFO: Started Started Ejb(deployment-id=MyService, Ejb(deployment-id=MyService, ejb-name=myservice, ejb-name=myservice, container=my Stateless Container) container=my Stateless Container) May May 11, 11, :23:24 4:23:24 PM PM org.apache.openejb.assembler.classic.assembler org.apache.openejb.assembler.classic.assembler startejbs startejbs INFO: INFO: Started Started Ejb(deployment-id=MyOtherService, Ejb(deployment-id=MyOtherService, ejb-name=myotherservice, ejb-name=myotherservice, container=my container=my Stateless Stateless Container) Container) Hello world! Hello world!

27 class class Todo Todo {{ private private long long == 1) 1) private private String String title; title; private private long long order; order; private private boolean boolean completed; completed; //... //...

28 class class Todo Todo {{ private private long long == 1) 1) private private String String class class TodoResource TodoResource {{ private private long long order; order; private private boolean boolean completed; completed; List<Todo> List<Todo> getall() getall() {{ return return Todo Todo long long id) id) {{ return return store.get(id); store.get(id); //... //...

29 GET GET /todos/1 /todos/1 HTTP/1.1 HTTP/1.1 Host: localhost Host: localhost GET GET /todos /todos HTTP/1.1 HTTP/1.1 Host: localhost Host: localhost HTTP/1.1 HTTP/ OK OK {{ HTTP/1.1 HTTP/ OK OK [[ "id": "id": 1, 1, "title": "title": "First "First todo", todo", "order": "order": 1, 1, "completed": "completed": false false {{ }, }, {{ ]] "id": "id": 1, 1, "title": "title": "First "First todo", todo", "order": "order": 1, 1, "completed": "completed": false false "id": "id": 2, 2, "title": "title": "Second "Second todo", todo", "order": "order": 2, 2, "completed": "completed": false false

30 GET GET /todos/1 /todos/1 HTTP/1.1 HTTP/1.1 Host: localhost Host: localhost GET GET /todos /todos HTTP/1.1 HTTP/1.1 Host: localhost Host: localhost HTTP/1.1 HTTP/ OK OK {{ todo: todo: {{ "id": "id": 1, 1, "title": "title": "First "First todo", todo", "order": "order": 1, 1, "completed": "completed": false false HTTP/1.1 HTTP/ OK OK {{ todo: todo: [[ {{ "id": "id": 1, 1, "title": "title": "First "First todo", todo", "order": "order": 1, 1, "completed": "completed": false false }, }, {{ "id": "id": 2, 2, "title": "title": "Second "Second todo", todo", "order": "order": 2, 2, "completed": "completed": false false ]]

31 GET GET /todos/1 /todos/1 HTTP/1.1 HTTP/1.1 Host: localhost Host: localhost GET GET /todos /todos HTTP/1.1 HTTP/1.1 Host: localhost Host: localhost HTTP/1.1 HTTP/ OK OK {{ todo: todo: {{ "id": "id": 1, 1, "title": "title": "First "First todo", todo", "order": "order": 1, 1, "completed": "completed": false false HTTP/1.1 HTTP/ OK OK {{ todo: todo: [[ {{ "id": "id": 1, 1, "title": "title": "First "First todo", todo", "order": "order": 1, 1, "completed": "completed": false false }, }, {{ "id": "id": 2, 2, "title": "title": "Second "Second todo", todo", "order": "order": 2, 2, "completed": "completed": false false ]]

32 The Ugly Loads of boilerplate code Tests only EJBs Never deployed

33 Configuration class class AuditMessageReceiverTest AuditMessageReceiverTest {{ final final String String originaltestmessage originaltestmessage == "Hello "Hello World!"; World!"; EntityManager EntityManager void void processqueue() processqueue() throws throws JMSException JMSException {{ List<AuditLog> List<AuditLog> list list == em.createquery("from em.createquery("from AuditLog", AuditLog", AuditLog.class).getResultList(); AuditLog.class).getResultList(); assertnotnull(list); assertnotnull(list); assertequals(1, assertequals(1, list.size()); list.size()); assertequals(originaltestmessage, assertequals(originaltestmessage, list.get(0).getmessage()); list.get(0).getmessage()); //.. //..

34 class class AuditMessageReceiverTest EjbJar EjbJar module() module() {{ final final EjbJar EjbJar ejbjar ejbjar == new new EjbJar(); EjbJar(); ejbjar.addenterprisebean(new ejbjar.addenterprisebean(new StatelessBean(AuditMessageProcessing.class)); StatelessBean(AuditMessageProcessing.class)); ejbjar.addenterprisebean(new ejbjar.addenterprisebean(new StatelessBean(AuditLoggerService.class)); StatelessBean(AuditLoggerService.class)); ejbjar.addenterprisebean(new ejbjar.addenterprisebean(new MessageDrivenBean(AuditingMessageListerner.class)); MessageDrivenBean(AuditingMessageListerner.class)); return return ejbjar; ejbjar; //.. //..

35 class class AuditMessageReceiverTest AuditMessageReceiverTest {{ PersistenceUnit PersistenceUnit persistence() persistence() {{ PersistenceUnit PersistenceUnit unit unit == new new PersistenceUnit("stockapp-audit"); PersistenceUnit("stockapp-audit"); unit.setjtadatasource("defaultds"); unit.setjtadatasource("defaultds"); unit.setprovider(hibernatepersistence.class); unit.setprovider(hibernatepersistence.class); unit.addclass(auditlog.class); unit.addclass(auditlog.class); Properties Properties dbproperties dbproperties == new new Properties(); Properties(); dbproperties.setproperty("hibernate.hbm2ddl.auto", dbproperties.setproperty("hibernate.hbm2ddl.auto", "create"createdrop"); drop"); dbproperties.setproperty("hibernate.dialect", dbproperties.setproperty("hibernate.dialect", "org.hibernate.dialect.hsqldialect"); "org.hibernate.dialect.hsqldialect"); dbproperties.setproperty"hibernate.use_sql_comments", dbproperties.setproperty"hibernate.use_sql_comments", "true"); "true"); dbproperties.setproperty("hibernate.show_sql", dbproperties.setproperty("hibernate.show_sql", "true"); "true"); dbproperties.setproperty("hibernate.format_sql", dbproperties.setproperty("hibernate.format_sql", "true"); "true"); unit.setproperties(dbproperties); unit.setproperties(dbproperties); return return unit; unit; //.. //..

36 class class AuditMessageReceiverTest AuditMessageReceiverTest {{ Properties Properties config() config() throws throws Exception Exception {{ Properties Properties pp == new new Properties(); Properties(); p.put("defaultds", p.put("defaultds", "new://resource?type=datasource"); "new://resource?type=datasource"); p.put("defaultds.jdbcdriver", p.put("defaultds.jdbcdriver", "org.hsqldb.jdbcdriver"); "org.hsqldb.jdbcdriver"); p.put("defaultds.jdbcurl", "jdbc:hsqldb:mem:testdb"); p.put("defaultds.jdbcurl", "jdbc:hsqldb:mem:testdb"); return return p; p; //.. //..

37 Test only EJB It s not a real application server Webservices: Apache CXF JMS: Apache MQ JPA: OpenJPA Hibernate (any provider)

38 Where we are now?

39 The aliens have landed Arquillian is a testing framework There are runners Containers & Enrichers

40 The aliens have landed Arquillian is a testing framework There are runners JUnit TestNG Containers & Enrichers

41 The aliens have landed Arquillian is a testing framework There are runners Containers Weld Tomcat JBoss Glassfish & Enrichers

42 The aliens have landed Arquillian is a testing framework There are runners Containers & Enrichers glue layer between your code and the container: inject, track results

43 A natural evolution

44 The are three modes Embedded You run your app server together with your code, in a single JVM Managed Arquillian starts and stops your nodes, together with an app, in separate JVMs Remote Everything is remotly deployed

45 And four ways for communicating results Local Same JVM, local bindings Servlet 2.5 Pre JEE-6 containers Servlet 3.0 Leveraging async servlets JMX Jboss AS 7 way

46 How it works in practice

47 Why we do it? Real test with real services (no mocks movement) With real environment Short feedback cycle

48 What s next Persitence Extension (DBUnit) GWT Extension JSFUnit BPEL testing Performance?

49 Call for arms Arquillian Test Porting Initiative

50 browse/tomee arquillian-test-porting-initiative.html

51 Projects to tackle Active MQ Apache CXF TomEE & OpenEJB MyFaces OpenWenBeans BVal

52 Lemme show you

53 You can innovate on nonfunctional areas, such as devops, logging, metrics, etc, if your core business needs to be more conservative.

54 Innovation comes not just from using new technologies, but also from using new techniques with old boring technologies

55 Questions

56

Example simple-mdb can be browsed at https://github.com/apache/tomee/tree/master/examples/simple-mdb

Example simple-mdb can be browsed at https://github.com/apache/tomee/tree/master/examples/simple-mdb Simple MDB Example simple-mdb can be browsed at https://github.com/apache/tomee/tree/master/examples/simple-mdb Below is a fun app, a chat application that uses JMS. We create a message driven bean, by

More information

Arquillian & ShrinkWrap

Arquillian & ShrinkWrap Arquillian & ShrinkWrap Integration testing made simple November 2014 What do they do? ShrinkWrap to package your test artifacts Arquillian deploys the package to target container Arquillian enriches and

More information

Dynamic Datasource Routing

Dynamic Datasource Routing Dynamic Datasource Routing Example dynamic-datasource-routing can be browsed at https://github.com/apache/tomee/tree/master/examples/dynamic-datasourcerouting The TomEE dynamic datasource api aims to allow

More information

Arquillian Persistence Extension

Arquillian Persistence Extension Arquillian Persistence Extension Example arquillian-jpa can be browsed at https://github.com/apache/tomee/tree/master/examples/arquillian-jpa A sample showing how to use TomEE, Arquillian and its Persistence

More information

Apache TomEE Tomcat with a kick

Apache TomEE Tomcat with a kick Apache TomEE Tomcat with a kick David Blevins dblevins@apache.org @dblevins Jonathan Gallimore jgallimore@apache.org @jongallimore Apache TomEE: Overview Java EE 6 Web Profile certification in progress

More information

Injection Of Entitymanager

Injection Of Entitymanager Injection Of Entitymanager Example injection-of-entitymanager can be browsed at https://github.com/apache/tomee/tree/master/examples/injection-ofentitymanager This example shows use of @PersistenceContext

More information

bean-validation-design-by-contract

bean-validation-design-by-contract bean-validation-design-by-contract Example bean-validation-design-by-contract can be browsed at https://github.com/apache/tomee/tree/master/examples/bean-validation-designby-contract Bean Validation -

More information

ApplicationComposer. The TomEE Swiss Knife

ApplicationComposer. The TomEE Swiss Knife ApplicationComposer The TomEE Swiss Knife ApplicationComposer API is mainly contained in org.apache.openejb.testing package (historically, today we would have called the package org.apache.tomee.applicationcomposer).

More information

Alternate Descriptors

Alternate Descriptors Alternate Descriptors Example alternate-descriptors can be browsed at https://github.com/apache/tomee/tree/master/examples/alternate-descriptors See the Alternate Descriptors page for the full details

More information

Testing Transactions BMT

Testing Transactions BMT Testing Transactions BMT Example testing-transactions-bmt can be browsed at https://github.com/apache/tomee/tree/master/examples/testing-transactions-bmt Shows how to begin, commit and rollback transactions

More information

CDI @ApplicationScoped Example cdi-application-scope can be browsed at https://github.com/apache/tomee/tree/master/examples/cdi-application-scope This example show the use of @ApplicationScoped annotation

More information

Custom resources in an EAR archive

Custom resources in an EAR archive Custom resources in an EAR archive Example resources-jmx-example can be browsed at https://github.com/apache/tomee/tree/master/examples/resources-jmx-example TomEE allows you to define your own resources

More information

EJB 2.1 CMP EntityBeans (CMP2)

EJB 2.1 CMP EntityBeans (CMP2) EJB 2.1 CMP EntityBeans (CMP2) Example simple-cmp2 can be browsed at https://github.com/apache/tomee/tree/master/examples/simple-cmp2 OpenEJB, the EJB Container for TomEE and Geronimo, does support all

More information

Example cdi-request-scope can be browsed at https://github.com/apache/tomee/tree/master/examples/cdi-request-scope

Example cdi-request-scope can be browsed at https://github.com/apache/tomee/tree/master/examples/cdi-request-scope CDI @RequestScoped Example cdi-request-scope can be browsed at https://github.com/apache/tomee/tree/master/examples/cdi-request-scope This example show the use of @RequestScoped annotation for injected

More information

Example schedule-expression can be browsed at

Example schedule-expression can be browsed at Schedule Expression Example schedule-expression can be browsed at https://github.com/apache/tomee/tree/master/examples/schedule-expression In this example we exercise the TimerService. NOTE "The TimerService

More information

Dynamic DAO Implementation

Dynamic DAO Implementation Dynamic DAO Implementation Example dynamic-dao-implementation can be browsed at https://github.com/apache/tomee/tree/master/examples/dynamic-daoimplementation Many aspects of Data Access Objects (DAOs)

More information

Seam 3. Pete Muir JBoss, a Division of Red Hat

Seam 3. Pete Muir JBoss, a Division of Red Hat Seam 3 Pete Muir JBoss, a Division of Red Hat Road Map Introduction Java EE 6 Java Contexts and Dependency Injection Seam 3 Mission Statement To provide a fully integrated development platform for building

More information

Simple Stateless with Descriptor

Simple Stateless with Descriptor Simple Stateless with Descriptor Example simple-stateless-with-descriptor can be browsed at https://github.com/apache/tomee/tree/master/examples/simple-stateless-withdescriptor This test is similar to

More information

Example injection-of-env-entry can be browsed at https://github.com/apache/tomee/tree/master/examples/injection-of-env-entry

Example injection-of-env-entry can be browsed at https://github.com/apache/tomee/tree/master/examples/injection-of-env-entry Using EnvEntries Example injection-of-env-entry can be browsed at https://github.com/apache/tomee/tree/master/examples/injection-of-env-entry The @Resource annotation can be used to inject several things

More information

V3 EJB Test One Pager

V3 EJB Test One Pager V3 EJB Test One Pager Overview 1. Introduction 2. EJB Testing Scenarios 2.1 EJB Lite Features 2.2 API only in Full EJB3.1 3. Document Review 4. Reference documents 1. Introduction This document describes

More information

<Insert Picture Here> Productive JavaEE 5.0 Development

<Insert Picture Here> Productive JavaEE 5.0 Development Productive JavaEE 5.0 Development Frank Nimphius Principle Product Manager Agenda Introduction Annotations EJB 3.0/JPA Dependency Injection JavaServer Faces JAX-WS Web Services Better

More information

The Next Generation. Prabhat Jha Principal Engineer

The Next Generation. Prabhat Jha Principal Engineer The Next Generation Prabhat Jha Principal Engineer What do you wish you had in an Open Source JEE Application Server? Faster Startup Time? Lighter Memory Footprint? Easier Administration? 7 Reasons To

More information

Webservice Inheritance

Webservice Inheritance Webservice Inheritance Example webservice-inheritance can be browsed at https://github.com/apache/tomee/tree/master/examples/webservice-inheritance Help us document this example! Click the blue pencil

More information

Dynamic Implementation

Dynamic Implementation Dynamic Implementation Example dynamic-implementation can be browsed at https://github.com/apache/tomee/tree/master/examples/dynamicimplementation Help us document this example! Click the blue pencil icon

More information

Java Lounge. Integration Solutions madeeasy ComparisonofJava Integration Frameworks. Mario Goller

Java Lounge. Integration Solutions madeeasy ComparisonofJava Integration Frameworks. Mario Goller Java Lounge Integration Solutions madeeasy ComparisonofJava Integration Frameworks Mario Goller 28.05.2013 BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART

More information

@jbossdeveloper. explained

@jbossdeveloper. explained @jbossdeveloper explained WHAT IS? A recommended approach, using modern technologies, that makes you more productive. Modern Technologies A Simple Process Build A Domain Layer Java EE 6 HTML5 by AeroGear

More information

JVA-163. Enterprise JavaBeans

JVA-163. Enterprise JavaBeans JVA-163. Enterprise JavaBeans Version 3.0.2 This course gives the experienced Java developer a thorough grounding in Enterprise JavaBeans -- the Java EE standard for scalable, secure, and transactional

More information

Example custom-injection can be browsed at https://github.com/apache/tomee/tree/master/examples/custom-injection

Example custom-injection can be browsed at https://github.com/apache/tomee/tree/master/examples/custom-injection Custom Injection Example custom-injection can be browsed at https://github.com/apache/tomee/tree/master/examples/custom-injection Help us document this example! Click the blue pencil icon in the upper

More information

Enterprise JavaBeans, Version 3 (EJB3) Programming

Enterprise JavaBeans, Version 3 (EJB3) Programming Enterprise JavaBeans, Version 3 (EJB3) Programming Description Audience This course teaches developers how to write Java Enterprise Edition (JEE) applications that use Enterprise JavaBeans, version 3.

More information

Example ear-testing can be browsed at https://github.com/apache/tomee/tree/master/examples/ear-testing

Example ear-testing can be browsed at https://github.com/apache/tomee/tree/master/examples/ear-testing EAR Testing Example ear-testing can be browsed at https://github.com/apache/tomee/tree/master/examples/ear-testing The goal of this example is to demonstrate how maven projects might be organized in a

More information

Example rest-on-ejb can be browsed at https://github.com/apache/tomee/tree/master/examples/rest-on-ejb

Example rest-on-ejb can be browsed at https://github.com/apache/tomee/tree/master/examples/rest-on-ejb REST on EJB Example rest-on-ejb can be browsed at https://github.com/apache/tomee/tree/master/examples/rest-on-ejb Help us document this example! Click the blue pencil icon in the upper right to edit this

More information

Injection Of Datasource

Injection Of Datasource Injection Of Datasource Example injection-of-datasource can be browsed at https://github.com/apache/tomee/tree/master/examples/injection-of-datasource Help us document this example! Click the blue pencil

More information

Java TM. Message-Driven Beans. Jaroslav Porubän 2007

Java TM. Message-Driven Beans. Jaroslav Porubän 2007 Message-Driven Beans Jaroslav Porubän 2007 Java Message Service Vendor-agnostic Java API that can be used with many different message-oriented middleware Supports message production, distribution, delivery

More information

IBD Intergiciels et Bases de Données

IBD Intergiciels et Bases de Données Overview of lectures and practical work IBD Intergiciels et Bases de Données Multi-tier distributed web applications Fabien Gaud, Fabien.Gaud@inrialpes.fr http://www-ufrima.imag.fr/ Placard électronique

More information

Shale and the Java Persistence Architecture. Craig McClanahan Gary Van Matre. ApacheCon US 2006 Austin, TX

Shale and the Java Persistence Architecture. Craig McClanahan Gary Van Matre. ApacheCon US 2006 Austin, TX Shale and the Java Persistence Architecture Craig McClanahan Gary Van Matre ApacheCon US 2006 Austin, TX 1 Agenda The Apache Shale Framework Java Persistence Architecture Design Patterns for Combining

More information

# Application server configuration

# Application server configuration Downloaded from: justpaste.it/f39t $Id: signserver_build.properties.sample 3262 2013-01-30 09:28:50Z netmackan $ Build configuration of SignServer. Modify at will before building. Note: You might have

More information

Fun with EJB and OpenEJB. David #OpenEJB

Fun with EJB and OpenEJB. David #OpenEJB Fun with EJB and OpenEJB David Blevins @dblevins #OpenEJB The Basics - History Timeline 1999 - Founded in Exoffice - EJB 1.1 level 2001 - Integrated in Apple s WebObjects 2002 - Moved to SourceForge 2003

More information

@Asynchronous Methods

@Asynchronous Methods @Asynchronous Methods Example async-methods can be browsed at https://github.com/apache/tomee/tree/master/examples/async-methods The @Asynchronous annotation was introduced in EJB 3.1 as a simple way of

More information

ClassLevelInterceptorOne

ClassLevelInterceptorOne Interceptors Example interceptors can be browsed at https://github.com/apache/tomee/tree/master/examples/interceptors Help us document this example! Click the blue pencil icon in the upper right to edit

More information

Oracle Exam 1z0-895 Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam Version: 14.0 [ Total Questions: 90 ]

Oracle Exam 1z0-895 Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam Version: 14.0 [ Total Questions: 90 ] s@lm@n Oracle Exam 1z0-895 Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam Version: 14.0 [ Total Questions: 90 ] Oracle 1z0-895 : Practice Test Question No : 1 A developer wants to create

More information

The Java EE 6 Tutorial

The Java EE 6 Tutorial 1 of 8 12/05/2013 5:13 PM Document Information Preface Part I Introduction 1. Overview 2. Using the Tutorial Examples Part II The Web Tier 3. Getting Started with Web Applications 4. JavaServer Faces Technology

More information

Metadata driven component development. using Beanlet

Metadata driven component development. using Beanlet Metadata driven component development using Beanlet What is metadata driven component development? It s all about POJOs and IoC Use Plain Old Java Objects to focus on business logic, and business logic

More information

Component Interfaces

Component Interfaces Component Interfaces Example component-interfaces can be browsed at https://github.com/apache/tomee/tree/master/examples/component-interfaces Help us document this example! Click the blue pencil icon in

More information

Asynchronous Messaging. Benoît Garbinato

Asynchronous Messaging. Benoît Garbinato Asynchronous Messaging Benoît Garbinato Fundamental idea Provide a communication abstraction that decouples collaborating distributed entities Time decoupling asynchrony Space decoupling anonymity Asynchrony

More information

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies J2EE - Version: 25 Developing Enterprise Applications with J2EE Enterprise Technologies Developing Enterprise Applications with J2EE Enterprise Technologies J2EE - Version: 25 5 days Course Description:

More information

Distributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management

Distributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management Distributed Systems Messaging and JMS 1 Example scenario Scenario: Store inventory is low This impacts multiple departments Inventory Sends a message to the factory when the inventory level for a product

More information

WHAT IS EJB. Security. life cycle management.

WHAT IS EJB. Security. life cycle management. EJB WHAT IS EJB EJB is an acronym for enterprise java bean. It is a specification provided by Sun Microsystems to develop secured, robust and scalable distributed applications. To run EJB application,

More information

ENTERPRISE JAVABEANS TM (EJB TM ) 3.1 TECHNOLOGY

ENTERPRISE JAVABEANS TM (EJB TM ) 3.1 TECHNOLOGY ENTERPRISE JAVABEANS TM (EJB TM ) 3.1 TECHNOLOGY Kenneth Saks Senior Staff Engineer SUN Microsystems TS-5343 Learn what is planned for the next version of Enterprise JavaBeans (EJB ) technology 2008 JavaOne

More information

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java EJB Enterprise Java EJB Beans ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY Peter R. Egli 1/23 Contents 1. What is a bean? 2. Why EJB? 3. Evolution

More information

Java EE 7: Back-End Server Application Development

Java EE 7: Back-End Server Application Development Oracle University Contact Us: Local: 0845 777 7 711 Intl: +44 845 777 7 711 Java EE 7: Back-End Server Application Development Duration: 5 Days What you will learn The Java EE 7: Back-End Server Application

More information

ADVANCED JAVA COURSE CURRICULUM

ADVANCED JAVA COURSE CURRICULUM ADVANCED JAVA COURSE CURRICULUM Index of Advanced Java Course Content : 1. Basics of Servlet 2. ServletRequest 3. Servlet Collaboration 4. ServletConfig 5. ServletContext 6. Attribute 7. Session Tracking

More information

J2EE 1.4. Magnus Larsson. Callista Enterprise AB.

J2EE 1.4. Magnus Larsson. Callista Enterprise AB. J2EE 1.4 Magnus Larsson Callista Enterprise AB magnus.larsson@callista.se http://www.callista.se/enterprise CADEC 2003-01-29, J2EE 1.4, Slide 1 J2EE 1.4 Target audience J2EE developers and architects Objectives

More information

2.0 Technical Description of the new features

2.0 Technical Description of the new features Generic JMS Resource Adapter Test Specification Sonia Liu Version 1.0 Date last updated 11/02/2006 1.0 Introduction 1.1 Overview The Generic JMS Resource Adapter version 1.7 (GRA 1.7) helps JMS providers

More information

Example rest-xml-json can be browsed at https://github.com/apache/tomee/tree/master/examples/rest-xml-json

Example rest-xml-json can be browsed at https://github.com/apache/tomee/tree/master/examples/rest-xml-json Simple REST Example rest-xml-json can be browsed at https://github.com/apache/tomee/tree/master/examples/rest-xml-json Defining a REST service is pretty easy, simply ad @Path annotation to a class then

More information

CMP 436/774. Introduction to Java Enterprise Edition. Java Enterprise Edition

CMP 436/774. Introduction to Java Enterprise Edition. Java Enterprise Edition CMP 436/774 Introduction to Java Enterprise Edition Fall 2013 Department of Mathematics and Computer Science Lehman College, CUNY 1 Java Enterprise Edition Developers today increasingly recognize the need

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 5 days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options.

More information

Basics of programming 3. Java Enterprise Edition

Basics of programming 3. Java Enterprise Edition Basics of programming 3 Java Enterprise Edition Introduction Basics of programming 3 BME IIT, Goldschmidt Balázs 2 Enterprise environment Special characteristics continuous availability component based

More information

Java EE 6 & Spring: A Lover s Quarrel. Derrick Kittler Mauricio Maltron Leal Vamsi Chemitiganti

Java EE 6 & Spring: A Lover s Quarrel. Derrick Kittler Mauricio Maltron Leal Vamsi Chemitiganti & Spring: A Lover s Quarrel Derrick Kittler Mauricio Maltron Leal Vamsi Chemitiganti Agenda o The goal of this talk o Evolution of Spring o Evolution of o Side-by-Side o Migrating o and Spring Coexistence

More information

JBoss to Geronimo - EJB-MDB Migration

JBoss to Geronimo - EJB-MDB Migration JBoss to Geronimo - EJB-MDB Migration Before looking at Message Driven Beans (MDBs) a brief overview of the Java Messaging Service (JMS) API is in order. JMS is a way for applications to send and receive

More information

Example cdi-produces-field can be browsed at https://github.com/apache/tomee/tree/master/examples/cdi-produces-field

Example cdi-produces-field can be browsed at https://github.com/apache/tomee/tree/master/examples/cdi-produces-field CDI field producer Example cdi-produces-field can be browsed at https://github.com/apache/tomee/tree/master/examples/cdi-produces-field This example shows the usage of the @Produces annotation. @Produces

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.

More information

Diagnostic & Audit system for Java EE applications

Diagnostic & Audit system for Java EE applications Diagnostic & Audit system for Java EE applications Florent Benoit, BULL/OW2 [ @florentbenoit ] Secure your Java EE project with the performance diagnostic tool provided by OW2 JOnAS # 1 Summary Context

More information

CO Java EE 7: Back-End Server Application Development

CO Java EE 7: Back-End Server Application Development CO-85116 Java EE 7: Back-End Server Application Development Summary Duration 5 Days Audience Application Developers, Developers, J2EE Developers, Java Developers and System Integrators Level Professional

More information

J2EE. Enterprise Architecture Styles: Two-Tier Architectures:

J2EE. Enterprise Architecture Styles: Two-Tier Architectures: J2EE J2EE is a unified standard for distributed applications through a component-based application model. It is a specification, not a product. There is a reference implementation available from Sun. We

More information

Seam & Web Beans. Pete Muir JBoss, a division of Red Hat.

Seam & Web Beans. Pete Muir JBoss, a division of Red Hat. Seam & Web Beans Pete Muir JBoss, a division of Red Hat http://in.relation.to/bloggers/pete pete.muir@jboss.org 1 Road Map Background Seam Web Beans 2 Advantages of JSF/JPA over Struts/EJB 2 Fewer, finer

More information

Eclipse Java Ejb 3.0 Tutorial For Beginners With Examples Pdf

Eclipse Java Ejb 3.0 Tutorial For Beginners With Examples Pdf Eclipse Java Ejb 3.0 Tutorial For Beginners With Examples Pdf EJB3 And JPA Step By Step Tutorial Using Eclipse Update And Delete Example, Hibernate Query Language, JSF Page Navigation Tutorial JSF Validation.

More information

Practice 2. SOAP & REST

Practice 2. SOAP & REST Enterprise System Integration Practice 2. SOAP & REST Prerequisites Practice 1. MySQL and JPA Introduction JAX-WS stands for Java API for XML Web Services. JAX-WS is a technology for building web services

More information

Enterprise Development

Enterprise Development Enterprise Development with What needs to be done to run JEE like applications inside Karaf? @anierbeck - Karaf PMC, Apache Member - OPS4j Pax Web Project Lead - Senior IT Consultant @codecentric - co-author

More information

Introduction to Spring 5, Spring MVC and Spring REST

Introduction to Spring 5, Spring MVC and Spring REST Introduction to Spring 5, Spring MVC and Spring REST Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options: Attend

More information

CDI Produces Disposes

CDI Produces Disposes CDI Produces Disposes Example cdi-produces-disposes can be browsed at https://github.com/apache/tomee/tree/master/examples/cdi-produces-disposes Help us document this example! Click the blue pencil icon

More information

Deccansoft Software Services. J2EE Syllabus

Deccansoft Software Services. J2EE Syllabus Overview: Java is a language and J2EE is a platform which implements java language. J2EE standard for Java 2 Enterprise Edition. Core Java and advanced java are the standard editions of java whereas J2EE

More information

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format. J2EE Development Detail: Audience www.peaksolutions.com/ittraining Java developers, web page designers and other professionals that will be designing, developing and implementing web applications using

More information

Introduction to JMS & Apache ActiveMQ

Introduction to JMS & Apache ActiveMQ Introduction to JMS & Apache ActiveMQ The web meeting will begin shortly Dial-in Information: Participant Code: 90448865 US Toll free: (1) 877 375 2160 US Toll: (1) 973 935 2036 United Kingdom: 08082348621

More information

Java EE 6: Develop Business Components with JMS & EJBs

Java EE 6: Develop Business Components with JMS & EJBs Oracle University Contact Us: + 38516306373 Java EE 6: Develop Business Components with JMS & EJBs Duration: 4 Days What you will learn This Java EE 6: Develop Business Components with JMS & EJBs training

More information

Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3

Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3 Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3 Jerome Dochez Mahesh Kannan Sun Microsystems, Inc. Agenda > Java EE 6 and GlassFish V3 > Modularity, Runtime > Service

More information

Arun Gupta is a technology enthusiast, a passionate runner, and a community guy who works for Sun Microsystems. And this is his blog!

Arun Gupta is a technology enthusiast, a passionate runner, and a community guy who works for Sun Microsystems. And this is his blog! Arun Gupta is a technology enthusiast, a passionate runner, and a community guy who works for Sun Microsystems. And this is his blog! Rational tools Consulting, Training, Automation ClearCase ClearQuest

More information

INTRODUCTION TO SERVLETS AND WEB CONTAINERS. Actions in Accord with All the Laws of Nature

INTRODUCTION TO SERVLETS AND WEB CONTAINERS. Actions in Accord with All the Laws of Nature INTRODUCTION TO SERVLETS AND WEB CONTAINERS Actions in Accord with All the Laws of Nature Web server vs web container Most commercial web applications use Apache proven architecture and free license. Tomcat

More information

Chapter 1 Introducing EJB 1. What is Java EE Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7

Chapter 1 Introducing EJB 1. What is Java EE Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7 CONTENTS Chapter 1 Introducing EJB 1 What is Java EE 5...2 Java EE 5 Components... 2 Java EE 5 Clients... 4 Java EE 5 Containers...4 Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7

More information

Asynchrone Kommunikation mit Message Driven Beans

Asynchrone Kommunikation mit Message Driven Beans Asynchrone Kommunikation mit Message Driven Beans Arnold Senn (Technical Consultant) asenn@borland.com Outline Why Messaging Systems? Concepts JMS specification Messaging Modes Messages Implementation

More information

Developing Applications with Java EE 6 on WebLogic Server 12c

Developing Applications with Java EE 6 on WebLogic Server 12c Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need

More information

David Blevins State of OpenEJB 3.0

David Blevins State of OpenEJB 3.0 David Blevins dblevins@visi.com State of OpenEJB 3.0 OpenEJB 1 History OpenEJB 2 EJB 1.1 Only CMP with Castor JDO Embeddable Tomcat Integration Standalone Capable EJB 2.1 Certified CMP with TranQL IoC

More information

The 1st Java professional open source Convention Israel 2006

The 1st Java professional open source Convention Israel 2006 The 1st Java professional open source Convention Israel 2006 The Next Generation of EJB Development Frederic Simon AlphaCSP Agenda Standards, Open Source & EJB 3.0 Tiger (Java 5) & JEE What is EJB 3.0

More information

Fast Track to EJB 3.0 and the JPA Using JBoss

Fast Track to EJB 3.0 and the JPA Using JBoss Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity

More information

PATTERNS & BEST PRACTICES FOR CDI

PATTERNS & BEST PRACTICES FOR CDI PATTERNS & BEST PRACTICES FOR CDI SESSION 20181 Ryan Cuprak e-formulation Analyst, Author, Connecticut Java Users Group President Reza Rahman Resin Developer, Java EE/EJB/JMS JCP expert, Author EJB 3 in

More information

Leverage Rational Application Developer v8 to develop Java EE6 application and test with WebSphere Application Server v8

Leverage Rational Application Developer v8 to develop Java EE6 application and test with WebSphere Application Server v8 Leverage Rational Application Developer v8 to develop Java EE6 application and test with WebSphere Application Server v8 Author: Ying Liu cdlliuy@cn.ibm.com Date: June 24, 2011 2011 IBM Corporation THE

More information

This is the first part of a multi-article series. For part 2 please see: Dependency Injection in Java EE 6 - Part 2

This is the first part of a multi-article series. For part 2 please see: Dependency Injection in Java EE 6 - Part 2 November 2009 Discuss this Article This is the first part of a multi-article series. For part 2 please see: Dependency Injection in Java EE 6 - Part 2 This series of articles introduces Contexts and Dependency

More information

Not just an App. Server

Not just an App. Server Israel JBoss User Group Session 01 / 16.3.2006 JBoss Not just an App. Server By : Lior Kanfi Tikal Hosted by Tikal. w w w. t i k a l k. c o m Cost-Benefit Open Source Agenda Introduction» The problem domain

More information

LTBP INDUSTRIAL TRAINING INSTITUTE

LTBP INDUSTRIAL TRAINING INSTITUTE Advance Java Servlet Basics of Servlet Servlet: What and Why? Basics of Web Servlet API Servlet Interface GenericServlet HttpServlet Servlet Li fe Cycle Working wi th Apache Tomcat Server Steps to create

More information

OSGi on the Server. Martin Lippert (it-agile GmbH)

OSGi on the Server. Martin Lippert (it-agile GmbH) OSGi on the Server Martin Lippert (it-agile GmbH) lippert@acm.org 2009 by Martin Lippert; made available under the EPL v1.0 October 6 th, 2009 Overview OSGi in 5 minutes Apps on the server (today and tomorrow)

More information

Outline. Project Goal. Overview of J2EE. J2EE Architecture. J2EE Container. San H. Aung 26 September, 2003

Outline. Project Goal. Overview of J2EE. J2EE Architecture. J2EE Container. San H. Aung 26 September, 2003 Outline Web-based Distributed EJB BugsTracker www.cs.rit.edu/~sha5239/msproject San H. Aung 26 September, 2003 Project Goal Overview of J2EE Overview of EJBs and its construct Overview of Struts Framework

More information

Reliable asynchronous web-services with Apache CXF

Reliable asynchronous web-services with Apache CXF Reliable asynchronous web-services with Apache CXF Florent Benoit, BULL/OW2 [ @florentbenoit ] Guy Vachet, France Telecom [guy.vachet@orange-ftgroup.com] New CXF transport allowing reliable Web Services

More information

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager Sun Microsystems 1 The Elephant In The Room 2 Here's what I can... Show Say 3 Business As Usual 4 Business As Usual = Participate in

More information

Migrating traditional Java EE applications to mobile

Migrating traditional Java EE applications to mobile Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16

More information

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Java- EE Web Application Development with Enterprise JavaBeans and Web Services Java- EE Web Application Development with Enterprise JavaBeans and Web Services Duration:60 HOURS Price: INR 8000 SAVE NOW! INR 7000 until December 1, 2011 Students Will Learn How to write Session, Message-Driven

More information

A Gentle Introduction to Java Server Pages

A Gentle Introduction to Java Server Pages A Gentle Introduction to Java Server Pages John Selmys Seneca College July 2010 What is JSP? Tool for developing dynamic web pages developed by SUN (now Oracle) High-level abstraction of Java Servlets

More information

DVS WEB INFOTECH DEVELOPMENT TRAINING RESEARCH CENTER

DVS WEB INFOTECH DEVELOPMENT TRAINING RESEARCH CENTER DVS WEB INFOTECH DEVELOPMENT TRAINING RESEARCH CENTER J2EE CURRICULUM Mob : +91-9024222000 Mob : +91-8561925707 Email : info@dvswebinfotech.com Email : hr@dvswebinfotech.com 48, Sultan Nagar,Near Under

More information

"Charting the Course... Mastering EJB 3.0 Applications. Course Summary

Charting the Course... Mastering EJB 3.0 Applications. Course Summary Course Summary Description Our training is technology centric. Although a specific application server product will be used throughout the course, the comprehensive labs and lessons geared towards teaching

More information

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module Java Platform, Enterprise Edition 5 (Java EE 5) Core Java EE Java EE 5 Platform Overview Java EE Platform Distributed Multi tiered Applications Java EE Web & Business Components Java EE Containers services

More information

Meet. Brian Stansberry Principal Software Engineer, Red Hat, Inc. June 10, Friday, June 14, 13

Meet. Brian Stansberry Principal Software Engineer, Red Hat, Inc. June 10, Friday, June 14, 13 Meet Brian Stansberry Principal Software Engineer, Red Hat, Inc. June 10, 2013 What s WildFly? New name for the JBoss Application Server project Reduce confusion over the name JBoss WildFly won a public

More information

Module 8 The Java Persistence API

Module 8 The Java Persistence API Module 8 The Java Persistence API Objectives Describe the role of the Java Persistence API (JPA) in a Java EE application Describe the basics of Object Relational Mapping Describe the elements and environment

More information