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.