EJB applications guided by tests Jakub Marchwicki
|
|
- Deborah Morton
- 5 years ago
- Views:
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
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 informationArquillian & 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 informationDynamic 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 informationArquillian 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 informationApache 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 informationInjection 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 informationbean-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 informationApplicationComposer. 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 informationAlternate 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 informationTesting 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 informationCDI @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 informationCustom 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 informationEJB 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 informationExample 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 informationExample 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 informationDynamic 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 informationSeam 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 informationSimple 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 informationExample 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 informationV3 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
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 informationThe 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 informationWebservice 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 informationDynamic 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 informationJava 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 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 informationJVA-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 informationExample 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 informationEnterprise 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 informationExample 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 informationExample 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 informationInjection 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 informationJava 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 informationIBD 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 informationShale 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
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 informationFun 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 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 informationClassLevelInterceptorOne
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 informationOracle 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 informationThe 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 informationMetadata 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 informationComponent 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 informationAsynchronous 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 informationJ2EE - 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 informationDistributed 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 informationWHAT 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 informationENTERPRISE 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 informationEJB 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 informationJava 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 informationADVANCED 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 informationJ2EE 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 information2.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 informationExample 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 informationCMP 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 informationWeb 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 informationBasics 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 informationJava 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 informationJBoss 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 informationExample 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 informationWeb 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 informationDiagnostic & 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 informationCO 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 informationJ2EE. 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 informationSeam & 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 informationEclipse 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 informationPractice 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 informationEnterprise 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 informationIntroduction 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 informationCDI 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 informationDeccansoft 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 informationJ2EE 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 informationIntroduction 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 informationJava 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 informationJava 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 informationArun 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 informationINTRODUCTION 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 informationChapter 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 informationAsynchrone 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 informationDeveloping 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 informationDavid 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 informationThe 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 informationFast 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 informationPATTERNS & 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 informationLeverage 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 informationThis 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 informationNot 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 informationLTBP 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 informationOSGi 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 informationOutline. 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 informationReliable 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 informationJava 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 informationMigrating 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 informationJava- 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 informationA 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 informationDVS 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
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 informationJava 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 informationMeet. 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 informationModule 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