| At line 65 changed 1 line. |
| person = (Person) mgr.getPerson("1"); |
| person = mgr.getPerson("1"); |
| At line 67 changed 2 lines. |
| assertTrue("person.firstName not null", |
| person.getFirstName() != null); |
| assertNotNull(person.getFirstName()); |
| At line 72 changed 2 lines. |
| person = (Person) mgr.getPerson("1"); |
| String name = person.getFirstName(); |
| person = mgr.getPerson("1"); |
| At line 76 changed 5 lines. |
| person = (Person) mgr.savePerson(person); |
| assertTrue("name updated", person.getFirstName().equals("test")); |
|
| person.setFirstName(name); |
| mgr.savePerson(person); |
| person = mgr.savePerson(person); |
| assertEquals(person.getFirstName(), "test"); |
| At line 87 changed 3 lines. |
| person = (Person) mgr.savePerson(person); |
| assertTrue(person.getFirstName().equals("Bill")); |
| assertTrue(person.getId() != null); |
| person = mgr.savePerson(person); |
| assertEquals(person.getFirstName(), "Bill")); |
| assertNotNull(person.getId()); |
| At line 91 changed 4 lines. |
| if (log.isDebugEnabled()) { |
| log.debug("removing person, personId: " + |
| person.getId()); |
| } |
| log.debug("removing person, personId: " + person.getId()); |
| At line 98 changed 1 line. |
| assertNull(mgr.getPerson(person.getId().toString())); |
| try { |
| person = mgr.getPerson(person.getId().toString()); |
| fail("Person found in database"); |
| } catch (DataAccessException dae) { |
| log.debug("Expected exception: " + dae.getMessage()); |
| assertNotNull(dae); |
| } |
| At line 121 removed 1 line. |
|
| At line 123 removed 1 line. |
|
| At line 125 changed 3 lines. |
|
| public Person savePerson(Object person); |
|
| public Person savePerson(Person person); |
| At line 132 changed 1 line. |
| Now let's create a PersonManagerImpl class that implements the methods in PersonManager. To do this, create a new class in src/service/**/service and name it PersonManagerImpl.java. It should extend BaseManager and implement PersonManager. |
| Now let's create a PersonManagerImpl class that implements the methods in PersonManager. To do this, create a new class in src/service/**/service/impl and name it PersonManagerImpl.java. It should extend BaseManager and implement PersonManager. |
| At line 136 changed 1 line. |
| package org.appfuse.service; |
| package org.appfuse.service.impl; |
| At line 138 removed 3 lines. |
| import org.apache.commons.logging.Log; |
| import org.apache.commons.logging.LogFactory; |
|
| At line 134 added 1 line. |
| import org.appfuse.service.PersonManager; |
| At line 146 removed 4 lines. |
| /** |
| * @author mraible |
| * @version $Revision: $ $Date: May 25, 2004 11:46:54 PM $ |
| */ |
| At line 151 removed 1 line. |
| private static Log log = LogFactory.getLog(PersonManagerImpl.class); |
| At line 166 changed 1 line. |
| public Person savePerson(Object person) { |
| public Person savePerson(Person person) { |
| At line 168 changed 1 line. |
| return (Person) person; |
| return person; |
| At line 191 changed 1 line. |
| To notify Spring of this our PersonManager interface and it's implementation, open the src/service/**/service/applicationContext-service.xml file. In here, you will see an existing configuration for the UserManager. You should be able to copy that and change a few things to get the XML fragment below. Add the following to the bottom of this file. |
| To notify Spring of this our PersonManager interface and it's implementation, open the src/service/**/service/applicationContext-service.xml file. In here, you should see a commented out definition for the "personManager" bean. Uncomment this, or add the following to the bottom of this file. |
| At line 195 changed 3 lines. |
| <!-- Person Manager --> |
| <bean id="personManagerTarget" class="org.appfuse.service.PersonManagerImpl" singleton="false"> |
| <property name="personDao"><ref bean="personDAO"/></property> |
| <bean id="personManager" parent="txProxyTemplate"> |
| <property name="target"> |
| <bean class="org.appfuse.service.impl.PersonManagerImpl" autowire="true"/> |
| </property> |
| At line 199 removed 8 lines. |
| |
| <!-- Transaction declarations for business services. To apply a generic transaction proxy to |
| all managers, you might look into using the BeanNameAutoProxyCreator --> |
| <bean id="personManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> |
| <property name="transactionManager"><ref bean="transactionManager"/></property> |
| <property name="target"><ref local="personManagerTarget"/></property> |
| <property name="transactionAttributeSource"><ref local="defaultTxAttributes"/></property> |
| </bean> |
| At line 209 changed 1 line. |
| ''Note: [I|DaveKeller] had SAX throw an error because defaultTxAttributes was not defined so I replaced the transactionAttributeSource with this instead, which allowed my unit test to run successfully.'' |
| The "parent" attribute refers to a bean definition for a TransactionProxyFactoryBean that has all the basic transaction attributes set. |
| At line 211 removed 1 line. |
| [{Java2HtmlPlugin |
| At line 213 removed 9 lines. |
| <property name="transactionAttributes"> |
| <props> |
| <prop key="*">PROPAGATION_REQUIRED</prop> |
| </props> |
| </property> |
|
| }] |
|
|