From 608c42f74bc6d6ee26de348d4e4b79e2d6c1194c Mon Sep 17 00:00:00 2001
From: Mic <misvy@vmware.com>
Date: Mon, 14 Jan 2013 22:13:04 +0800
Subject: [PATCH] migrated from SimpleJdbcTemplate to JdbcTemplate

---
 ...{SimpleJdbcClinic.java => JdbcClinic.java} |  35 ++---
 ...cClinicMBean.java => JdbcClinicMBean.java} |   6 +-
 .../samples/petclinic/jdbc/JdbcPet.java       |   2 +-
 src/main/resources/db/hsqldb/initDB.sql       |   9 ++
 src/main/resources/log4j.xml                  |   4 +
 .../spring/applicationContext-jdbc.xml        |   2 +-
 src/main/webapp/resources/html/tutorial.html  |   2 +-
 .../petclinic/AbstractClinicTests.java        |  11 +-
 .../aspects/UsageLogAspectTests.java          |   6 +-
 .../petclinic/jdbc/JdbcClinicTests.java       |  26 ++++
 .../petclinic/jdbc/SimpleJdbcClinicTests.java |  21 ---
 .../samples/petclinic/jpa/JpaClinicTests.java | 123 +-----------------
 .../petclinic/AbstractClinicTests-context.xml |  27 ----
 .../jdbc/JdbcClinicTests-context.xml          |  30 +++++
 .../jdbc/SimpleJdbcClinicTests-context.xml    |  11 --
 15 files changed, 108 insertions(+), 207 deletions(-)
 rename src/main/java/org/springframework/samples/petclinic/jdbc/{SimpleJdbcClinic.java => JdbcClinic.java} (91%)
 rename src/main/java/org/springframework/samples/petclinic/jdbc/{SimpleJdbcClinicMBean.java => JdbcClinicMBean.java} (76%)
 create mode 100644 src/test/java/org/springframework/samples/petclinic/jdbc/JdbcClinicTests.java
 delete mode 100644 src/test/java/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicTests.java
 delete mode 100644 src/test/resources/org/springframework/samples/petclinic/AbstractClinicTests-context.xml
 create mode 100644 src/test/resources/org/springframework/samples/petclinic/jdbc/JdbcClinicTests-context.xml
 delete mode 100644 src/test/resources/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicTests-context.xml

diff --git a/src/main/java/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinic.java b/src/main/java/org/springframework/samples/petclinic/jdbc/JdbcClinic.java
similarity index 91%
rename from src/main/java/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinic.java
rename to src/main/java/org/springframework/samples/petclinic/jdbc/JdbcClinic.java
index 7baef09..48863e9 100644
--- a/src/main/java/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinic.java
+++ b/src/main/java/org/springframework/samples/petclinic/jdbc/JdbcClinic.java
@@ -15,6 +15,7 @@ import org.springframework.dao.DataAccessException;
 import org.springframework.dao.EmptyResultDataAccessException;
 import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;
 import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
 import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
@@ -42,7 +43,7 @@ import org.springframework.transaction.annotation.Transactional;
  * {@link ParameterizedBeanPropertyRowMapper} which provide automatic mapping
  * between JavaBean properties and JDBC parameters or query results.
  *
- * <p>SimpleJdbcClinic is a rewrite of the AbstractJdbcClinic which was the base
+ * <p>JdbcClinic is a rewrite of the AbstractJdbcClinic which was the base
  * class for JDBC implementations of the Clinic interface for Spring 2.0.
  *
  * @author Ken Krebs
@@ -54,11 +55,12 @@ import org.springframework.transaction.annotation.Transactional;
  */
 @Service
 @ManagedResource("petclinic:type=Clinic")
-public class SimpleJdbcClinic implements Clinic, SimpleJdbcClinicMBean {
+public class JdbcClinic implements Clinic, JdbcClinicMBean {
 
 	private final Logger logger = LoggerFactory.getLogger(getClass());
 
-	private JdbcTemplate simpleJdbcTemplate;
+	private JdbcTemplate jdbcTemplate;
+	private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
 
 	private SimpleJdbcInsert insertOwner;
 	private SimpleJdbcInsert insertPet;
@@ -69,7 +71,8 @@ public class SimpleJdbcClinic implements Clinic, SimpleJdbcClinicMBean {
 
 	@Autowired
 	public void init(DataSource dataSource) {
-		this.simpleJdbcTemplate = new JdbcTemplate(dataSource);
+		this.jdbcTemplate = new JdbcTemplate(dataSource);
+		this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
 
 		this.insertOwner = new SimpleJdbcInsert(dataSource)
 			.withTableName("owners")
@@ -95,18 +98,18 @@ public class SimpleJdbcClinic implements Clinic, SimpleJdbcClinicMBean {
 
 			// Retrieve the list of all vets.
 			this.vets.clear();
-			this.vets.addAll(this.simpleJdbcTemplate.query(
+			this.vets.addAll(this.jdbcTemplate.query(
 					"SELECT id, first_name, last_name FROM vets ORDER BY last_name,first_name",
 					ParameterizedBeanPropertyRowMapper.newInstance(Vet.class)));
 
 			// Retrieve the list of all possible specialties.
-			final List<Specialty> specialties = this.simpleJdbcTemplate.query(
+			final List<Specialty> specialties = this.jdbcTemplate.query(
 					"SELECT id, name FROM specialties",
 					ParameterizedBeanPropertyRowMapper.newInstance(Specialty.class));
 
 			// Build each vet's list of specialties.
 			for (Vet vet : this.vets) {
-				final List<Integer> vetSpecialtiesIds = this.simpleJdbcTemplate.query(
+				final List<Integer> vetSpecialtiesIds = this.jdbcTemplate.query(
 						"SELECT specialty_id FROM vet_specialties WHERE vet_id=?",
 						new ParameterizedRowMapper<Integer>() {
 							public Integer mapRow(ResultSet rs, int row) throws SQLException {
@@ -136,7 +139,7 @@ public class SimpleJdbcClinic implements Clinic, SimpleJdbcClinicMBean {
 
 	@Transactional(readOnly = true)
 	public Collection<PetType> getPetTypes() throws DataAccessException {
-		return this.simpleJdbcTemplate.query(
+		return this.jdbcTemplate.query(
 				"SELECT id, name FROM types ORDER BY name",
 				ParameterizedBeanPropertyRowMapper.newInstance(PetType.class));
 	}
@@ -149,7 +152,7 @@ public class SimpleJdbcClinic implements Clinic, SimpleJdbcClinicMBean {
 	 */
 	@Transactional(readOnly = true)
 	public Collection<Owner> findOwners(String lastName) throws DataAccessException {
-		List<Owner> owners = this.simpleJdbcTemplate.query(
+		List<Owner> owners = this.jdbcTemplate.query(
 				"SELECT id, first_name, last_name, address, city, telephone FROM owners WHERE last_name like ?",
 				ParameterizedBeanPropertyRowMapper.newInstance(Owner.class),
 				lastName + "%");
@@ -166,7 +169,7 @@ public class SimpleJdbcClinic implements Clinic, SimpleJdbcClinicMBean {
 	public Owner findOwner(int id) throws DataAccessException {
 		Owner owner;
 		try {
-			owner = this.simpleJdbcTemplate.queryForObject(
+			owner = this.jdbcTemplate.queryForObject(
 					"SELECT id, first_name, last_name, address, city, telephone FROM owners WHERE id=?",
 					ParameterizedBeanPropertyRowMapper.newInstance(Owner.class),
 					id);
@@ -182,7 +185,7 @@ public class SimpleJdbcClinic implements Clinic, SimpleJdbcClinicMBean {
 	public Pet findPet(int id) throws DataAccessException {
 		JdbcPet pet;
 		try {
-			pet = this.simpleJdbcTemplate.queryForObject(
+			pet = this.jdbcTemplate.queryForObject(
 					"SELECT id, name, birth_date, type_id, owner_id FROM pets WHERE id=?",
 					new JdbcPetRowMapper(),
 					id);
@@ -205,7 +208,7 @@ public class SimpleJdbcClinic implements Clinic, SimpleJdbcClinicMBean {
 			owner.setId(newKey.intValue());
 		}
 		else {
-			this.simpleJdbcTemplate.update(
+			this.namedParameterJdbcTemplate.update(
 					"UPDATE owners SET first_name=:firstName, last_name=:lastName, address=:address, " +
 					"city=:city, telephone=:telephone WHERE id=:id",
 					new BeanPropertySqlParameterSource(owner));
@@ -220,7 +223,7 @@ public class SimpleJdbcClinic implements Clinic, SimpleJdbcClinicMBean {
 			pet.setId(newKey.intValue());
 		}
 		else {
-			this.simpleJdbcTemplate.update(
+			this.namedParameterJdbcTemplate.update(
 					"UPDATE pets SET name=:name, birth_date=:birth_date, type_id=:type_id, " +
 					"owner_id=:owner_id WHERE id=:id",
 					createPetParameterSource(pet));
@@ -240,7 +243,7 @@ public class SimpleJdbcClinic implements Clinic, SimpleJdbcClinicMBean {
 	}
 
 	public void deletePet(int id) throws DataAccessException {
-		this.simpleJdbcTemplate.update("DELETE FROM pets WHERE id=?", id);
+		this.jdbcTemplate.update("DELETE FROM pets WHERE id=?", id);
 	}
 
 	// END of Clinic implementation section ************************************
@@ -275,7 +278,7 @@ public class SimpleJdbcClinic implements Clinic, SimpleJdbcClinicMBean {
 	 * Loads the {@link Visit} data for the supplied {@link Pet}.
 	 */
 	private void loadVisits(JdbcPet pet) {
-		final List<Visit> visits = this.simpleJdbcTemplate.query(
+		final List<Visit> visits = this.jdbcTemplate.query(
 				"SELECT id, visit_date, description FROM visits WHERE pet_id=?",
 				new ParameterizedRowMapper<Visit>() {
 					public Visit mapRow(ResultSet rs, int row) throws SQLException {
@@ -297,7 +300,7 @@ public class SimpleJdbcClinic implements Clinic, SimpleJdbcClinicMBean {
 	 * {@link Owner}.
 	 */
 	private void loadPetsAndVisits(final Owner owner) {
-		final List<JdbcPet> pets = this.simpleJdbcTemplate.query(
+		final List<JdbcPet> pets = this.jdbcTemplate.query(
 				"SELECT id, name, birth_date, type_id, owner_id FROM pets WHERE owner_id=?",
 				new JdbcPetRowMapper(),
 				owner.getId().intValue());
diff --git a/src/main/java/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicMBean.java b/src/main/java/org/springframework/samples/petclinic/jdbc/JdbcClinicMBean.java
similarity index 76%
rename from src/main/java/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicMBean.java
rename to src/main/java/org/springframework/samples/petclinic/jdbc/JdbcClinicMBean.java
index c9a7a78..69627e1 100644
--- a/src/main/java/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicMBean.java
+++ b/src/main/java/org/springframework/samples/petclinic/jdbc/JdbcClinicMBean.java
@@ -6,14 +6,14 @@ package org.springframework.samples.petclinic.jdbc;
  * 
  * @author Rob Harrop
  * @author Juergen Hoeller
- * @see SimpleJdbcClinic
+ * @see JdbcClinic
  */
-public interface SimpleJdbcClinicMBean {
+public interface JdbcClinicMBean {
 
 	/**
 	 * Refresh the cache of Vets that the Clinic is holding.
 	 * @see org.springframework.samples.petclinic.Clinic#getVets()
-	 * @see SimpleJdbcClinic#refreshVetsCache()
+	 * @see JdbcClinic#refreshVetsCache()
 	 */
 	void refreshVetsCache();
 
diff --git a/src/main/java/org/springframework/samples/petclinic/jdbc/JdbcPet.java b/src/main/java/org/springframework/samples/petclinic/jdbc/JdbcPet.java
index 963ffdf..b2d2530 100644
--- a/src/main/java/org/springframework/samples/petclinic/jdbc/JdbcPet.java
+++ b/src/main/java/org/springframework/samples/petclinic/jdbc/JdbcPet.java
@@ -7,7 +7,7 @@ import org.springframework.samples.petclinic.Pet;
  * are only relevant for a JDBC implmentation of the Clinic.
  *
  * @author Juergen Hoeller
- * @see SimpleJdbcClinic
+ * @see JdbcClinic
  */
 class JdbcPet extends Pet {
 
diff --git a/src/main/resources/db/hsqldb/initDB.sql b/src/main/resources/db/hsqldb/initDB.sql
index e6a8a19..a76d662 100644
--- a/src/main/resources/db/hsqldb/initDB.sql
+++ b/src/main/resources/db/hsqldb/initDB.sql
@@ -1,3 +1,12 @@
+drop table vet_specialties if exists;
+drop table vets if exists;
+drop table specialties if exists;
+drop table visits if exists;
+drop table pets if exists;
+drop table types if exists;
+drop table owners if exists;
+
+
 CREATE TABLE vets (
 	id INTEGER IDENTITY PRIMARY KEY,
 	first_name VARCHAR(30),
diff --git a/src/main/resources/log4j.xml b/src/main/resources/log4j.xml
index 56c78c7..029b681 100755
--- a/src/main/resources/log4j.xml
+++ b/src/main/resources/log4j.xml
@@ -19,6 +19,10 @@
 		<level value="DEBUG" />
 	</logger>
 	
+	<logger name="org.springframework.jdbc">
+		<level value="DEBUG" />
+	</logger>
+	
 
 	
 	<!-- Root Logger -->
diff --git a/src/main/resources/spring/applicationContext-jdbc.xml b/src/main/resources/spring/applicationContext-jdbc.xml
index 162fab1..7456dbc 100644
--- a/src/main/resources/spring/applicationContext-jdbc.xml
+++ b/src/main/resources/spring/applicationContext-jdbc.xml
@@ -56,7 +56,7 @@
 	<context:mbean-export/> 
 
 	<!-- PetClinic's central data access object using Spring's SimpleJdbcTemplate -->
-	<bean id="clinic" class="org.springframework.samples.petclinic.jdbc.SimpleJdbcClinic"/>
+	<bean id="clinic" class="org.springframework.samples.petclinic.jdbc.JdbcClinic"/>
 
 	<!-- Call monitoring aspect that monitors call count and call invocation time -->
 	<bean id="callMonitor" class="org.springframework.samples.petclinic.aspects.CallMonitoringAspect"/>
diff --git a/src/main/webapp/resources/html/tutorial.html b/src/main/webapp/resources/html/tutorial.html
index 40652fe..a46365f 100644
--- a/src/main/webapp/resources/html/tutorial.html
+++ b/src/main/webapp/resources/html/tutorial.html
@@ -480,7 +480,7 @@
 
 	<p>
 		The JDBC implementation of the Clinic interface is
-		<span style="font-weight: bold; font-style: italic;">org.springframework.samples.petclinic.jdbc.SimpleJdbcClinic</span>,
+		<span style="font-weight: bold; font-style: italic;">org.springframework.samples.petclinic.jdbc.JdbcClinic</span>,
 		which uses Java 5 language features,
 		<strong>org.springframework.jdbc.core.simple.SimpleJdbcTemplate</strong>, and
 		<strong>org.springframework.jdbc.core.simple.SimpleJdbcInsert</strong>.
diff --git a/src/test/java/org/springframework/samples/petclinic/AbstractClinicTests.java b/src/test/java/org/springframework/samples/petclinic/AbstractClinicTests.java
index 4d7b411..a9246d4 100644
--- a/src/test/java/org/springframework/samples/petclinic/AbstractClinicTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/AbstractClinicTests.java
@@ -81,7 +81,6 @@ import org.springframework.transaction.annotation.Transactional;
  * @author Juergen Hoeller
  * @author Sam Brannen
  */
-@ContextConfiguration
 public abstract class AbstractClinicTests {
 
 	@Autowired
@@ -121,8 +120,8 @@ public abstract class AbstractClinicTests {
 		assertEquals(0, owners.size());
 	}
 
-	@Test
-	public void loadOwner() {
+	@Test @Transactional
+	public void findOwner() {
 		Owner o1 = this.clinic.findOwner(1);
 		assertTrue(o1.getLastName().startsWith("Franklin"));
 		Owner o10 = this.clinic.findOwner(10);
@@ -163,7 +162,7 @@ public abstract class AbstractClinicTests {
 	}
 
 	@Test
-	public void loadPet() {
+	public void findPet() {
 		Collection<PetType> types = this.clinic.getPetTypes();
 		Pet p7 = this.clinic.findPet(7);
 		assertTrue(p7.getName().startsWith("Samantha"));
@@ -175,7 +174,7 @@ public abstract class AbstractClinicTests {
 		assertEquals("Peter", p6.getOwner().getFirstName());
 	}
 
-	@Test
+	@Test @Transactional
 	public void insertPet() {
 		Owner o6 = this.clinic.findOwner(6);
 		int found = o6.getPets().size();
@@ -204,7 +203,7 @@ public abstract class AbstractClinicTests {
 		assertEquals(old + "X", p7.getName());
 	}
 
-	@Test
+	@Test  @Transactional
 	public void insertVisit() {
 		Pet p7 = this.clinic.findPet(7);
 		int found = p7.getVisits().size();
diff --git a/src/test/java/org/springframework/samples/petclinic/aspects/UsageLogAspectTests.java b/src/test/java/org/springframework/samples/petclinic/aspects/UsageLogAspectTests.java
index 407712d..8e8624e 100644
--- a/src/test/java/org/springframework/samples/petclinic/aspects/UsageLogAspectTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/aspects/UsageLogAspectTests.java
@@ -5,6 +5,7 @@ import java.util.List;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.samples.petclinic.Clinic;
 import org.springframework.samples.petclinic.aspects.UsageLogAspect;
 import org.springframework.samples.petclinic.jpa.JpaClinicTests;
 import org.springframework.test.context.ContextConfiguration;
@@ -27,10 +28,13 @@ import static junit.framework.Assert.assertFalse;
  */
 @ContextConfiguration(locations={"classpath:spring/applicationContext-jpa.xml"})
 @RunWith(SpringJUnit4ClassRunner.class)
-public class UsageLogAspectTests extends JpaClinicTests {
+public class UsageLogAspectTests {
 
 	@Autowired
 	private UsageLogAspect usageLogAspect;
+	
+	@Autowired
+	private Clinic clinic;
 
 
 	@Test
diff --git a/src/test/java/org/springframework/samples/petclinic/jdbc/JdbcClinicTests.java b/src/test/java/org/springframework/samples/petclinic/jdbc/JdbcClinicTests.java
new file mode 100644
index 0000000..138053b
--- /dev/null
+++ b/src/test/java/org/springframework/samples/petclinic/jdbc/JdbcClinicTests.java
@@ -0,0 +1,26 @@
+package org.springframework.samples.petclinic.jdbc;
+
+import org.junit.runner.RunWith;
+import org.springframework.samples.petclinic.AbstractClinicTests;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+/**
+ * <p>
+ * Integration tests for the {@link JdbcClinic} implementation.
+ * </p>
+ * <p>
+ * "JdbcClinicTests-context.xml" determines the actual beans to test.
+ * </p>
+ *
+ * @author Thomas Risberg
+ */
+@ContextConfiguration(locations={"classpath:spring/applicationContext-jdbc.xml"})
+@RunWith(SpringJUnit4ClassRunner.class)
+@DirtiesContext
+public class JdbcClinicTests extends AbstractClinicTests {
+	
+	
+
+}
diff --git a/src/test/java/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicTests.java b/src/test/java/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicTests.java
deleted file mode 100644
index f44baeb..0000000
--- a/src/test/java/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicTests.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.springframework.samples.petclinic.jdbc;
-
-import org.springframework.samples.petclinic.AbstractClinicTests;
-import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.ContextConfiguration;
-
-/**
- * <p>
- * Integration tests for the {@link SimpleJdbcClinic} implementation.
- * </p>
- * <p>
- * "SimpleJdbcClinicTests-context.xml" determines the actual beans to test.
- * </p>
- *
- * @author Thomas Risberg
- */
-@ContextConfiguration
-@DirtiesContext
-public class SimpleJdbcClinicTests extends AbstractClinicTests {
-
-}
diff --git a/src/test/java/org/springframework/samples/petclinic/jpa/JpaClinicTests.java b/src/test/java/org/springframework/samples/petclinic/jpa/JpaClinicTests.java
index d4ccd5d..2d0d6fa 100644
--- a/src/test/java/org/springframework/samples/petclinic/jpa/JpaClinicTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/jpa/JpaClinicTests.java
@@ -14,6 +14,7 @@ import javax.persistence.PersistenceContext;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.samples.petclinic.AbstractClinicTests;
 import org.springframework.samples.petclinic.Clinic;
 import org.springframework.samples.petclinic.Owner;
 import org.springframework.samples.petclinic.Pet;
@@ -46,13 +47,13 @@ import org.springframework.transaction.annotation.Transactional;
 
 @ContextConfiguration(locations={"classpath:spring/applicationContext-jpa.xml"})
 @RunWith(SpringJUnit4ClassRunner.class)
-public class JpaClinicTests {
+public class JpaClinicTests extends AbstractClinicTests {
 	
 	@PersistenceContext
 	private EntityManager entityManager;
 
 	@Autowired
-	protected Clinic clinic;
+	private Clinic clinic;
 
 
 	@Test
@@ -64,121 +65,5 @@ public class JpaClinicTests {
 			// expected
 		}
 	}
-
-
-	@Test @Transactional
-	public void testGetVets() {
-		Collection<Vet> vets = this.clinic.getVets();
-		
-		Vet v1 = EntityUtils.getById(vets, Vet.class, 2);
-		assertEquals("Leary", v1.getLastName());
-		assertEquals(1, v1.getNrOfSpecialties());
-		assertEquals("radiology", (v1.getSpecialties().get(0)).getName());
-		Vet v2 = EntityUtils.getById(vets, Vet.class, 3);
-		assertEquals("Douglas", v2.getLastName());
-		assertEquals(2, v2.getNrOfSpecialties());
-		assertEquals("dentistry", (v2.getSpecialties().get(0)).getName());
-		assertEquals("surgery", (v2.getSpecialties().get(1)).getName());
-	}
-
-	@Test
-	public void testGetPetTypes() {
-		Collection<PetType> petTypes = this.clinic.getPetTypes();
-		
-		PetType t1 = EntityUtils.getById(petTypes, PetType.class, 1);
-		assertEquals("cat", t1.getName());
-		PetType t4 = EntityUtils.getById(petTypes, PetType.class, 4);
-		assertEquals("snake", t4.getName());
-	}
-
-	@Test
-	public void testFindOwners() {
-		Collection<Owner> owners = this.clinic.findOwners("Davis");
-		assertEquals(2, owners.size());
-		owners = this.clinic.findOwners("Daviss");
-		assertEquals(0, owners.size());
-	}
-
-	@Test
-	public void tesFindOwner() {
-		Owner o1 = this.clinic.findOwner(1);
-		assertTrue(o1.getLastName().startsWith("Franklin"));
-		Owner o10 = this.clinic.findOwner(10);
-		assertEquals("Carlos", o10.getFirstName());
-	}
-
-	@Test
-	public void testInsertOwner() {
-		Collection<Owner> owners = this.clinic.findOwners("Schultz");
-		int found = owners.size();
-		Owner owner = new Owner();
-		owner.setLastName("Schultz");
-		this.clinic.storeOwner(owner);
-		// assertTrue(!owner.isNew()); -- NOT TRUE FOR TOPLINK (before commit)
-		owners = this.clinic.findOwners("Schultz");
-		assertEquals(found + 1, owners.size());
-	}
-
-	@Test
-	public void testUpdateOwner() throws Exception {
-		Owner o1 = this.clinic.findOwner(1);
-		String old = o1.getLastName();
-		o1.setLastName(old + "X");
-		this.clinic.storeOwner(o1);
-		o1 = this.clinic.findOwner(1);
-		assertEquals(old + "X", o1.getLastName());
-	}
-
-	@Test
-	public void testFindPet() {
-		Collection<PetType> types = this.clinic.getPetTypes();
-		Pet p7 = this.clinic.findPet(7);
-		assertTrue(p7.getName().startsWith("Samantha"));
-		assertEquals(EntityUtils.getById(types, PetType.class, 1).getId(), p7.getType().getId());
-		assertEquals("Jean", p7.getOwner().getFirstName());
-		Pet p6 = this.clinic.findPet(6);
-		assertEquals("George", p6.getName());
-		assertEquals(EntityUtils.getById(types, PetType.class, 4).getId(), p6.getType().getId());
-		assertEquals("Peter", p6.getOwner().getFirstName());
-	}
-
-	@Test  @Transactional
-	public void testInsertPet() {
-		Owner o6 = this.clinic.findOwner(6);
-		int found = o6.getPets().size();
-		Pet pet = new Pet();
-		pet.setName("bowser");
-		Collection<PetType> types = this.clinic.getPetTypes();
-		pet.setType(EntityUtils.getById(types, PetType.class, 2));
-		pet.setBirthDate(new Date());
-		o6.addPet(pet);
-		assertEquals(found + 1, o6.getPets().size());
-		this.clinic.storeOwner(o6);
-		// assertTrue(!pet.isNew()); -- NOT TRUE FOR TOPLINK (before commit)
-		o6 = this.clinic.findOwner(6);
-		assertEquals(found + 1, o6.getPets().size());
-	}
-
-	@Test
-	public void testUpdatePet() throws Exception {
-		Pet p7 = this.clinic.findPet(7);
-		String old = p7.getName();
-		p7.setName(old + "X");
-		this.clinic.storePet(p7);
-		p7 = this.clinic.findPet(7);
-		assertEquals(old + "X", p7.getName());
-	}
-
-	@Test  @Transactional
-	public void testInsertVisit() {
-		Pet p7 = this.clinic.findPet(7);
-		int found = p7.getVisits().size();
-		Visit visit = new Visit();
-		p7.addVisit(visit);
-		visit.setDescription("test");
-		this.clinic.storePet(p7);
-		// assertTrue(!visit.isNew()); -- NOT TRUE FOR TOPLINK (before commit)
-		p7 = this.clinic.findPet(7);
-		assertEquals(found + 1, p7.getVisits().size());
-	}
+	
 }
\ No newline at end of file
diff --git a/src/test/resources/org/springframework/samples/petclinic/AbstractClinicTests-context.xml b/src/test/resources/org/springframework/samples/petclinic/AbstractClinicTests-context.xml
deleted file mode 100644
index d048d8a..0000000
--- a/src/test/resources/org/springframework/samples/petclinic/AbstractClinicTests-context.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-		xmlns:p="http://www.springframework.org/schema/p"
-		xmlns:context="http://www.springframework.org/schema/context" 
-		xmlns:jdbc="http://www.springframework.org/schema/jdbc"
-		xmlns:tx="http://www.springframework.org/schema/tx"
-		xsi:schemaLocation="
-			http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-			http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
-			http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
-			http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
-
-	<context:property-placeholder location="classpath:jdbc.properties"/>
-
-	<context:annotation-config/>
-
-	<tx:annotation-driven/>
-
-	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
-			p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}"
-			p:username="${jdbc.username}" p:password="${jdbc.password}"/>
-
-	<jdbc:initialize-database data-source="dataSource" ignore-failures="ALL">
-		<jdbc:script location="${jdbc.initLocation}"/>
-		<jdbc:script location="${jdbc.dataLocation}"/>
-	</jdbc:initialize-database>
-</beans>
diff --git a/src/test/resources/org/springframework/samples/petclinic/jdbc/JdbcClinicTests-context.xml b/src/test/resources/org/springframework/samples/petclinic/jdbc/JdbcClinicTests-context.xml
new file mode 100644
index 0000000..a98d372
--- /dev/null
+++ b/src/test/resources/org/springframework/samples/petclinic/jdbc/JdbcClinicTests-context.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
+	xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
+		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
+		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
+
+	<context:property-placeholder location="classpath:spring/jdbc.properties"/>
+
+	<context:annotation-config/>
+
+	<tx:annotation-driven/> 
+
+	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
+			p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}"
+			p:username="${jdbc.username}" p:password="${jdbc.password}"/>
+
+	<jdbc:initialize-database data-source="dataSource" ignore-failures="ALL">
+		<jdbc:script location="${jdbc.initLocation}"/>
+		<jdbc:script location="${jdbc.dataLocation}"/>
+	</jdbc:initialize-database>
+
+	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
+		p:dataSource-ref="dataSource" />
+
+	<bean class="org.springframework.samples.petclinic.jdbc.JdbcClinic" />
+
+</beans>
diff --git a/src/test/resources/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicTests-context.xml b/src/test/resources/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicTests-context.xml
deleted file mode 100644
index 81a5369..0000000
--- a/src/test/resources/org/springframework/samples/petclinic/jdbc/SimpleJdbcClinicTests-context.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:p="http://www.springframework.org/schema/p"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
-
-	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
-		p:dataSource-ref="dataSource" />
-
-	<bean class="org.springframework.samples.petclinic.jdbc.SimpleJdbcClinic" />
-
-</beans>
-- 
GitLab