Spring Integration Part 1 - Custom Training Courses - Coreservlets ...

4 downloads 141 Views 700KB Size Report
http://courses.coreservlets.com/Course-Materials/spring.html ... For live Spring & Hibernate training, see thtt //. l t .... Plugins available for NetBeans and IntelliJ.
© 2008 coreservlets.com

Spring Integration Part 1 Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/Course-Materials/spring.html Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.

© 2008 coreservlets.com

For live Spring & Hibernate training, see courses att http://courses.coreservlets.com/. htt // l t / Taught by the experts that brought you this tutorial. Available at public venues, venues or customized versions can be held on-site at your organization. • Courses C d developed l d and d ttaught ht b by M Marty t H Hallll – Java 5, Java 6, intermediate/beginning servlets/JSP, advanced servlets/JSP, Struts, JSF, Ajax, GWT, custom mix of topics

• Courses developed and taught by EE coreservlets.com experts (edited by Marty) Customized Java Training: http://courses.coreservlets.com/ – Spring, Hibernate/JPA, EJB3, Ruby/Rails

Servlets, JSP, Struts, JSF/MyFaces/Facelets, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Contact [email protected] for details Developed and taught by well-known author and developer. At public venues or onsite at your location.

Topics p in This Section • • • • •

4

Maven 2 build system overview General build procedure Multi-module project build process Spring IoC integration Testing with Maven 2 and Spring

Java EE training: http://courses.coreservlets.com

© 2008 coreservlets.com

B ild System Build S t Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.

Conventions • Variables ${KEY} • Home directory ${HOME} – Linux: $HOME or ~ – Windows %HOMEPATH%

• Path separator / – Linux - “/” – Windows – “\”

6

Java EE training: http://courses.coreservlets.com

General Goals • Manage source and configuration files • Distribute and execute in a test environment • Integrate third-party libraries • Package and distribute project

7

Java EE training: http://courses.coreservlets.com

Maven 2 Build System y • Implements best practices into build defaults • Comprehensive build system – – – – – – –

Compile Test Package Distribute Version IDE integration Report generation

• Customizable behavior

8

Java EE training: http://courses.coreservlets.com

Maven 2 Architecture • Maven client – Plugin execution framework

• Project – Source tree – Maven configuration

• Repository y – Addressable (URL) file repository

• Local repository cache – Pl Plugin i downloads d l d – Direct and transitive dependencies – Defaults to ${HOME}/.m2/repository • Edit settings.xml for alternatives • 9

Java EE training: http://courses.coreservlets.com

Client Personalization • Global – Maven 2 installation root • conf/settings.xml

• User – ${HOME}/.m2/settings.xml

10

Java EE training: http://courses.coreservlets.com

Maven 2 Installation Process • Verify prerequisites – JDK 1.4+ 1 4+ – JAVA_HOME set to JDK installation root

• Download maven – http://maven.apache.org/download.html h // h /d l d h l (< ( 2mb) 2 b) – Maven 2.0.9 (zip/tar.gz/tar.bz2)

• Unpack download – Extract to target installation path

• Set Maven 2 home – Set variable M2_HOME to the installation path • Contains bin, boot, conf, and lib directories

• Add M2_HOME bin directory to execution path – Add ${M2_HOME}/bin to PATH environment setting

• Verify repository settings – Official, mirror, or corporate 11

Java EE training: http://courses.coreservlets.com

Verify y Repository p y Settings g • Default – Official repository; a.k.a. central • http://repo1.maven.org/maven2

• Mirror – Traditional mirror • Redundant site

– Corporate repository – Private network • Without internet access

12

Java EE training: http://courses.coreservlets.com

Repository p y Mirror mirror mirror of central http://mirror/maven2 central

13

Java EE training: http://courses.coreservlets.com

© 2008 coreservlets.com

B ild Process Build P Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.

General Approach pp • Compile source – Reference third-party libraries – Reference peer modules

• Integrate project with IDE • Test binaries • Package source for distribution

15

Java EE training: http://courses.coreservlets.com

Process • Create project structure – – – –

project/src/main/java j i j project/src/main/resources project/src/test/java project/src/test/resources

• Create project/pom.xml – Register g Maven 2 NS – Define project meta-data • e.g. project identifiers

– Plugin Pl i settings tti – Specify dependencies • Third-party libraries • Local projects 16

Java EE training: http://courses.coreservlets.com

Process Continued • Integrate with IDE – Prepare for eclipse mvn eclipse:eclipse • Plugins available for NetBeans and IntelliJ

– Refresh or import p project p j into IDE

• Develop source – src/main/java • e.g., e g coreservlets.MockCustomerDao l t M kC t D

• Perform build activities – Compile, p , test,, package, p g , generate g reports, p , and more… – e.g., mvn clean install

17

Java EE training: http://courses.coreservlets.com

Create Project j Structure /coreservlets-api /src /main /java /resources /test /java /resources

18

Java EE training: http://courses.coreservlets.com

Create pom.xml /coreservlets-api pom xml pom.xml /src /main /java /resources /test /java /resources

19

Java EE training: http://courses.coreservlets.com

Create pom.xml • Register Maven 2 schema and namespace mapping i

20

Java EE training: http://courses.coreservlets.com

Create pom.xml • Define project identifiers – Referenceable identifier from other projects 4.0.0 coreservlets coreservlets-api 1.0-SNAPSHOT jar coreservlets-api 21

Java EE training: http://courses.coreservlets.com

Create pom.xml Continued • Define compiler settings ... org.apache.maven.plugins maven compiler plugin maven-compiler-plugin 2.0 1.5 1.5 22

Java EE training: http://courses.coreservlets.com

Create pom.xml Continued • Optional plugin customizations

23

... org.apache.maven.plugins maven surefire plugin maven-surefire-plugin false true true true

Java EE training: http://courses.coreservlets.com

Create pom.xml Continued • Specify dependencies < log4j Id>l 4j log4j 1.2.14

24

Java EE training: http://courses.coreservlets.com

Integrate g with Eclipse p IDE • Prepare project – mvn eclipse:eclipse • Clean configuration with mvn eclipse:clean

• Prepare Eclipse IDE – From the Eclipse root window menu bar • Open Window / Preferences

– From Preferences • Expand Java / Build Path / Classpath Variables / New

– From New Variable Entry • Add M2_REPO mapped to local repository path

– e.g., ${HOME}/.m2/repository

25

Java EE training: http://courses.coreservlets.com

Integrate g with Eclipse p IDE • Import projects into Eclipse workspace – From the Eclipse root window menu bar • Open File / Import

– From the Import wizard • Select / General / Existing Projects into Workspace / Next • Import Projects / Select root directory / Browse

– From Browse for Folder • Drill-down into project directory • Select OK

– Verify project is present and checked • Select Finish

26

Java EE training: http://courses.coreservlets.com

Develop p Source /coreservlets-api pom.xml /src /main /java /coreservlets Customer.java CustomerDao.java /resources /test /java /resources

27

Java EE training: http://courses.coreservlets.com

Perform Build Activities • General build tasks – – – – –

mvn mvn mvn mvn mvn

clean compile test package install

• Optionally, specify multiple build tasks – mvn clean install

28

Java EE training: http://courses.coreservlets.com

Build Artifacts • Project coreservlets-api – JAR • coreservlets-api-1.0-SNAPSHOT.jar

29

Java EE training: http://courses.coreservlets.com

© 2008 coreservlets.com

Multi-Module Multi Module Projects Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.

Multi-Module Project j Structure • Project one – pom.xml – src/main/java

• Project two – pom.xml – src/main/java / i /j

• Project N – pom.xml l – src/main/java

• pom.xml pom xml 31

Java EE training: http://courses.coreservlets.com

Configuration • Parent pom.xml – Module list • a.k.a. child projects •

– Parent settings • Plugin settings • Third-party Thi d t library lib versions i • Global dependencies

• Child pom.xml – Parent reference •

32

Java EE training: http://courses.coreservlets.com

Parent pom.xml • Parent project identifier and type 4.0.0 coreservlets coreservlets-pom < 1.0-SNAPSHOT i >1 0 SNAPSHOT pom coreservlets-pom /p oject

33

Java EE training: http://courses.coreservlets.com

Parent pom.xml • Module list ... coreservlets-api

34

Java EE training: http://courses.coreservlets.com

Parent pom.xml • Plugin settings – Inherited by child projects

35

... ... org.apache.maven.plugins maven-compiler-plugin 2.0 1.5 1.5 t t 1 5 /t t Java EE training: http://courses.coreservlets.com ...

Parent pom.xml • Third-party library versions ... log4j log4j 1.2.4

36

Java EE training: http://courses.coreservlets.com

Parent pom.xml • Third-party library versions ... log4j log4j

37

Java EE training: http://courses.coreservlets.com

Child project pom.xml 4.0.0 coreservlets coreservlets-api jar coreservlets-api 1.0-SNAPSHOT coreservlets coreservlets-pom 1.0-SNAPSHOT i 1 0 SNAPSHOT / i 38

Java EE training: http://courses.coreservlets.com

Build Artifacts • Project coreservlets-pom – POM • coreservlets-pom-1.0-SNAPSHOT.pom

• Project coreservlets coreservlets-api api – JAR • coreservlets-api-1.0-SNAPSHOT.jar

39

Java EE training: http://courses.coreservlets.com

© 2008 coreservlets.com

Implementation Project Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.

API Implementation p Project j • Parent configuration – pom.xml

• Project coreservlets-api • Project coreservlets coreservlets-mock mock

41

Java EE training: http://courses.coreservlets.com

Process • Create project structure for coreservlets- mock – – – –

src/main/java src/main/resources src/test/java src/test/resources

• Create pom.xml • Specify dependencies – Third-party Thi d t libraries lib i • e.g., log4j

– Local projects • e.g., coreservlets-api 42

Java EE training: http://courses.coreservlets.com

Process Continued • Integrate with IDE – mvn eclipse:eclipse – Import or refresh project

• Develop source – src/main/java • coreservlets.MockCustomerDao

• Perform build activities – e.g., mvn clean install

43

Java EE training: http://courses.coreservlets.com

Create pom.xml • Project identifers • Parent project reference 4.0.0 coreservlets coreservlets-mock jar coreservlets-mock 1.0-SNAPSHOT coreservlets coreservlets-pom 1.0-SNAPSHOT i 1 0 S S O / i 44

Java EE training: http://courses.coreservlets.com

Create pom.xml • Local project dependency ... ${project.groupId} coreservlets-api ${project.version}

45

Java EE training: http://courses.coreservlets.com

Complete p Process • Integrate with IDE – mvn eclipse:eclipse – Import or refresh project

• Develop source – src/main/java • coreservlets.MockCustomerDao

• Perform build activities – e.g., mvn clean install

46

Java EE training: http://courses.coreservlets.com

Build Artifacts • Project coreservlets-pom – POM • pom.xml

• Project coreservlets coreservlets-api api – JAR • coreservlets-api-1.0-SNAPSHOT.jar

• Project P j t coreservlets-mock – JAR • coreservlets-mock-1.0-SNAPSHOT.jar coreservlets mock 1.0 SNAPSHOT.jar

47

Java EE training: http://courses.coreservlets.com

© 2008 coreservlets.com

D l Deployment t Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.

Deployment p y Project j • Parent configuration – pom.xml

• Project coreservlets-api • Project coreservlets coreservlets-mock mock • Project coreservlets-main

49

Java EE training: http://courses.coreservlets.com

Process • Create project structure – – – –

src/main/java src/main/resources src/test/java src/test/resources

• Create pom.xml – Register Maven 2 NS – Define project meta-data; meta data; e.g. e g project identifiers – Plugin settings • maven-jar-plugin • maven-assembly-plugin – Specify dependencies • Third-party libraries – e.g., spring-core, spring-beans, spring-context

• Local projects 50

– e.g., coreservlets- api, coreservlets-mock

Java EE training: http://courses.coreservlets.com

Process Continued • Integrate with IDE – Prepare for eclipse mvn eclipse:eclipse • Plugins available for NetBeans and IntelliJ

– Refresh or import p project p j into IDE

• Develop source – src/main/java • e.g., e g coreservlets.MockCustomerDao l t M kC t D

• Perform build activities – Compile, p , test,, package, p g , generate g reports, p , and more… – e.g., mvn clean install

51

Java EE training: http://courses.coreservlets.com

Create pom.xml 4.0.0 d l i 4 0 0 / d l i coreservlets coreservlets-main jar coreservlets-main 1.0-SNAPSHOT coreservlets coreservlets-pom 1 0 SNAPSHOT 1.0-SNAPSHOT 52

Java EE training: http://courses.coreservlets.com

Create pom.xml • Project identifers • Parent project reference 4.0.0 coreservlets coreservlets-main jar k i j / k i coreservlets-main 1.0-SNAPSHOT coreservlets coreservlets-pom 1.0-SNAPSHOT 53

Java EE training: http://courses.coreservlets.com

Create pom.xml • Local project dependencies ${project.groupId} coreservlets-api ${project.version} ${project.groupId} coreservlets-mock i i ${project.version} /d d i 54

Java EE training: http://courses.coreservlets.com

Create pom.xml • Third-party dependencies

55

org.springframework spring beans spring-beans org.springframework spring-context org.springframework d i f k / d spring-core commons-logging commons-logging Java EE training: http://courses.coreservlets.com

Create pom.xml • Customize plugins – maven-jar-plugin • Executable JAR

– maven-assembly maven assembly plugin • Aggregate artifact with dependencies

56

Java EE training: http://courses.coreservlets.com

Complete p Process • Integrate with IDE – mvn eclipse:eclipse – Import or refresh project

• Develop source – src/main/java • coreservlets.Main

• Perform build activities – e.g., mvn clean install

57

Java EE training: http://courses.coreservlets.com

Build Artifacts • Project coreservlets-pom – POM • pom.xml

• Project coreservlets coreservlets-api api – JAR • coreservlets-api-1.0-SNAPSHOT.jar

• Project P j t coreservlets-mock – JAR • coreservlets-mock-1.0-SNAPSHOT.jar coreservlets mock 1.0 SNAPSHOT.jar

58

Java EE training: http://courses.coreservlets.com

Build Artifacts Continued • Project coreservlets-main – JAR • coreservlets-main-1.0-SNAPSHOT.jar

– Assemblyy • coreservlets-api-1.0-SNAPSHOT.jar • coreservlets-mock-1.0-SNAPSHOT.jar • coreservlets coreservlets-main-1 main 1.0 0-SNAPSHOT SNAPSHOT.jar jar (Executable JAR) • spring-beans-2.5.5.jar • spring-context-2.5.5.jar spring context 2 5 5 jar • spring-core-2.5.5.jar • aopalliance-1.0.jar • commons-logging-1.0.4.jar l i 1 0 4 j • log4j-1.2.11.jar 59

Java EE training: http://courses.coreservlets.com

© 2008 coreservlets.com

I t Integrate t Spring S i IoC I C Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.

General Approach pp • Project coreservlets-api • Project coreservlets-mock – Include Spring bean definitions with build package • coreservletsContext.xml coreservletsContext xml

• Project coreservlets-main – Define Spring bean definitions reference • Load bean definitions at runtime • Reference coreservletsContext.xml

– Specify Spring JAR dependencies – Decouple mock implementation

61

Java EE training: http://courses.coreservlets.com

Project j Structure • Project coreservlets-pom – pom.xml

• Project coreservlets-api – src/main/java • coreservlets.Customer • coreservlets.CustomerDao

• Project coreservlets-mock – pom.xml – src/main/java / i /j • coreservlets.MockCustomerDao

– src/main/resources • coreservletsContext.xml 62

Java EE training: http://courses.coreservlets.com

Project j Structure Continued • Project coreservlets-main – pom.xml • Spring IoC JAR references

– src/main/java s c/ a /java • coreservlets.Main

63

Java EE training: http://courses.coreservlets.com

Project j coreservlets-mock • Add Spring bean definitions – src/main/resources • coreservletsContext.xml

64

class="coreservlets.MockCustomerDao"> Java EE training: http://courses.coreservlets.com

Project j coreservlets-main • Spring IoC JAR dependencies – coreservlets-main/pom.xml

65

... org.springframework spring beans spring-beans org.springframework spring-context org.springframework spring-core commons-logging commons-logging Java EE training: http://courses.coreservlets.com

Project coreservlets-main • Driver class coreservlets.Main public class Main { public static void main(String[]args){ System.out.println("Searching for: " + args[0]); BeanFactory factory = new ClassPathXmlApplicationContext( "/coreservletsContext.xml"); CustomerDao service = (CustomerDao) factory.getBean("CustomerDao"); Customer customer = service.getCustomerByName(args[0]); i ( [0]) System.out.println("Found: " + customer); } }

66

Standard output

> java -jar coreservlets-main.jar "Java Joe" Searching for: Java Joe Found: Customer id=jjoe, name=Java Joe

Java EE training: http://courses.coreservlets.com

© 2008 coreservlets.com

Spring Library Integration Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.

General Approach pp • Spring IoC Container – Deployment contexts – Test contexts

• Spring AOP Libraries – Advisor code – Deployment l contexts – Test contexts

• Spring service abstractions – Implementation projects

68

Java EE training: http://courses.coreservlets.com

Compilation Dependencies Example • coreservlets-api • coreservlets-mock – coreservlets-api l t i

• coreservlets-jdbc – spring spring-jdbc, jdbc, spring spring-tx tx

• coreservlets-jpa – spring-orm, javax-persistence

• coreservlets-advice – aopalliance, spring-aop

• coreservlets-main coreservlets main – coreservlets-api, spring-context, spring-beans 69

Java EE training: http://courses.coreservlets.com

© 2008 coreservlets.com

Testing with Maven 2 and Spring Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.

Build Artifacts • Project coreservlets-pom – POM • pom.xml

• Project coreservlets coreservlets-api api – JAR • coreservlets-api-1.0-SNAPSHOT.jar

• Project P j t coreservlets-jdbc j – JAR • coreservlets-jdbc-1.0-SNAPSHOT.jar coreservlets jdbc 1.0 SNAPSHOT.jar

71

Java EE training: http://courses.coreservlets.com

Project j Structure • Project coreservlets-pom – pom.xml l • Project coreservlets-api – src/main/java • coreservlets.Customer • coreservlets.CustomerDao

• Project coreservlets coreservlets-jdbc jdbc – pom.xml – src/main/java • coreservlets.SpringJdbcCustomerDao l t S i Jdb C t D

– src/main/resources • coreservletsContext.xml

– src/test/java •? 72

Java EE training: http://courses.coreservlets.com

General Approach pp • • • •

73

Create test class Integrate Spring IoC container Inject test fixture(s) Define test cases

Java EE training: http://courses.coreservlets.com

Process • Register Spring test JAR – org.springframework:spring-test org springframework spring test (test scope)

• Create test class – Name class with suffix Test – Place Pl class l under d src/test/java j

• Create test resources – Place test resources under src/test/resources – e.g., applicationContext.xml defining platform beans such as dataSource

• Integrate Spring IoC container (Spring TestContext) – Class annotation • @RunWith(SpringJUnit4ClassRunner.class) – Class annotation • @ContextConfiguration( locations={"path-0","path-N"}) 74

Java EE training: http://courses.coreservlets.com

Process Continued • Inject test fixtures – @Autowired fields or methods • By type • Optional qualifier

– @Resource fields or methods • By bean name

• Define lifecycle methods (optional) – @BeforeClass, @Before, @After, @AfterClass

• Define test cases – @Test methods

• Execute tests – mvn test t st • Or, a goal with a test goal dependency; e.g., mvn install 75

Java EE training: http://courses.coreservlets.com

Create Test Resources • src/test/resources – coreservletsTestContext.xml /setup.sql

76

Java EE training: http://courses.coreservlets.com

Create Test Resources Continued • src/test/resources – setup.sql create table customer ( id varchar(36) not null, name varchar(32) not null, primary key (id), unique i (name) ); delete from customer; insert into customer (id, (id name) values ('jjoe','Java ('jjoe' 'Java Joe'); insert into customer (id, name) values ('jjohn','Java John'); commit; 77

Java EE training: http://courses.coreservlets.com

Create Test Class • src/test/java – coreservlets/CustomerDaoTransactionalTest package coreservlets; public class CustomerDaoTransactionalTest { }

78

Java EE training: http://courses.coreservlets.com

Create Test Class Continued • Reference bean definition paths – src/test/resources • coreservletsContext.xml • coreservletsTestContext.xml @RunWith(SpringJUnit4ClassRunner.class) g @ContextConfiguration( locations={"/coreservletsContext.xml", "/coreservletsTestContext.xml"}) public class CustomerDaoIntegrationTest { }

79

Java EE training: http://courses.coreservlets.com

Integrate g Spring p g IoC Container • @RunWith @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={ "/coreservletsContext.xml", / l l "/coreservletsTestContext.xml"}) public class CustomerDaoIntegrationTest { }

• AbstractJUnit4SpringContextTests @ContextConfiguration(locations={ i i i "/coreservletsContext.xml", "/coreservletsTestContext.xml"}) public class CustomerDaoIntegrationTest extends AbstractJUnit4SpringContextTests { } 80

Java EE training: http://courses.coreservlets.com

Inject Test Fixture with @Autowired • Field injection public i class CustomerDaoIntegrationTest i { @Autowired public CustomerDao service; }

• Setter injection @Autowired public void setService(CustomerDao service){ this.service = service; }

• Qualified Q lifi d setter tt injection i j ti

81

@Autowired public void setService( @Qualifier("beanName") CustomerDao service){ this.service = service; }

Java EE training: http://courses.coreservlets.com

Inject Test Fixture with @Resource • Field injection public i class CustomerDaoIntegrationTest i { @Resource public CustomerDao service; }

• Setter injection @Resource public void setService(CustomerDao service){ this.service = service; }

• Qualified Q lifi d setter tt injection i j ti @Resource(name="beanName") public void setService(CustomerDao service){ this.service = service; } 82

Java EE training: http://courses.coreservlets.com

Create Lifecycle Methods (Optional) public class CustomerDaoIntegrationTest { ... @BeforeClass public static void execOnceBeforeAllTestCases(){ } @Before public void execBeforeEachTestCase(){ } @Test public void testMethod(){ } @Test public void testDemo01(){ } @After public void execAfterEachTestCase(){ } @AfterClass public bli static t ti void id execAfterAllTestCases(){ Aft AllT tC (){ } } 83

Java EE training: http://courses.coreservlets.com

Create Test Cases package coreservlets; import static org.junit.Assert.*; public class CustomerDaoIntegrationTest { … @Test public void testCase(){ assert service != null : "Service is null"; assertNotNull("Service is not null", service); } }

84

Java EE training: http://courses.coreservlets.com

Execute Test Cases ------------------------------------------------------T E S T S ------------------------------------------------------Running coreservlets. CustomerDaoIntegrationTest Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: l d 0 0.159 159 sec Results : Tests run: 2, Failures: 0, Errors: 0, Skipped: 0

85

Java EE training: http://courses.coreservlets.com

© 2008 coreservlets.com

Wrap-up Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.

Summary y • Maven 2 – Automates best practices

• Multi-module project builds • coreservlets-api • coreservlets-mock • coreservlets-jdbc • coreservlets-main

• Spring library integration – Isolated to the deployment context •

87

Java EE training: http://courses.coreservlets.com

Summary y Continued • Testing with Maven 2 and Spring – Integrate container • @RunWith(SpringJUnit4ClassRunner.class) • @ContextConfiguration(locations={...}) @ContextConfiguration(locations={ })

– Inject test fixtures • @Autowired or @Resource

– Test cases • @Test

– Execute tests • mvn test

88

Java EE training: http://courses.coreservlets.com

© 2008 coreservlets.com

Q Questions? ti ? Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.