From 965a0fff1ef09df4051cba2670d96ba420928c16 Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 26 Feb 2012 17:00:41 -0500 Subject: [PATCH 01/25] Initial commit --- .../ch01/dao/jdbc/JdbcAccountDao.java | 17 +++++------ .../ch01/service/AccountService.java | 30 +++++++++++++++++++ src/main/java/dataSource.properties | 4 +++ 3 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/springinpractice/ch01/service/AccountService.java create mode 100644 src/main/java/dataSource.properties diff --git a/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java b/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java index b344e61..9c467cd 100644 --- a/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java +++ b/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java @@ -1,19 +1,18 @@ -// Source project: sip01, branch: 01 (Maven Project) +// Source project: sip01, branch: 02 (Maven Project) package com.springinpractice.ch01.dao.jdbc; -import org.apache.commons.dbcp.BasicDataSource; +import javax.sql.DataSource; import com.springinpractice.ch01.dao.AccountDao; public class JdbcAccountDao implements AccountDao { - private BasicDataSource dataSource; - public JdbcAccountDao() { - dataSource = new BasicDataSource(); - dataSource.setDriverClassName("com.mysql.jdbc.Driver"); - dataSource.setUrl("jdbc:mysql://localhost:3306/springbook?autoReconnect=true"); - dataSource.setUsername("root"); - dataSource.setPassword(""); + private DataSource dataSource; + + public JdbcAccountDao() {} + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; } } diff --git a/src/main/java/com/springinpractice/ch01/service/AccountService.java b/src/main/java/com/springinpractice/ch01/service/AccountService.java new file mode 100644 index 0000000..68a692e --- /dev/null +++ b/src/main/java/com/springinpractice/ch01/service/AccountService.java @@ -0,0 +1,30 @@ +//Source project: sip01, branch: 02 (Maven Project) +package com.springinpractice.ch01.service; +import java.util.Properties; +import java.io.InputStream; +import org.apache.commons.dbcp.BasicDataSource; +import com.springinpractice.ch01.dao.jdbc.JdbcAccountDao; + +public class AccountService { + private JdbcAccountDao accountDao; + + public AccountService() { + try { + Properties props = new Properties(); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("dataSource.properties"); + props.load(inputStream); + + BasicDataSource dataSource = new BasicDataSource(); + dataSource.setDriverClassName(props.getProperty("driverClassName")); + dataSource.setUrl(props.getProperty("url")); + dataSource.setUsername(props.getProperty("username")); + dataSource.setPassword(props.getProperty("password")); + + accountDao = new JdbcAccountDao(); + accountDao.setDataSource(dataSource); + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} + diff --git a/src/main/java/dataSource.properties b/src/main/java/dataSource.properties new file mode 100644 index 0000000..cbbcb04 --- /dev/null +++ b/src/main/java/dataSource.properties @@ -0,0 +1,4 @@ +driverClassName=com.mysql.jdbc.Driver +url=:mysql://localhost:3306/springbook?autoReconnect=true +username=someusername +password=somepassword \ No newline at end of file From 7b55af90afec0228e493998d3dcd7f5f22979987 Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 26 Feb 2012 17:19:55 -0500 Subject: [PATCH 02/25] added resources directory and moved dataSource.properties --- src/main/{java => resources}/dataSource.properties | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/main/{java => resources}/dataSource.properties (100%) diff --git a/src/main/java/dataSource.properties b/src/main/resources/dataSource.properties similarity index 100% rename from src/main/java/dataSource.properties rename to src/main/resources/dataSource.properties From 07609de976073ea580b2bd07d11f14c818b0aa98 Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 26 Feb 2012 17:33:08 -0500 Subject: [PATCH 03/25] Initial commit for branch 03 --- pom.xml | 5 +++ .../ch01/service/AccountService.java | 34 +++++-------------- src/main/resources/applicationContext.xml | 26 ++++++++++++++ 3 files changed, 40 insertions(+), 25 deletions(-) create mode 100644 src/main/resources/applicationContext.xml diff --git a/pom.xml b/pom.xml index eb4b87c..160432c 100644 --- a/pom.xml +++ b/pom.xml @@ -15,6 +15,11 @@ + + org.springframework + spring-context + 3.1.1.RELEASE + commons-dbcp commons-dbcp diff --git a/src/main/java/com/springinpractice/ch01/service/AccountService.java b/src/main/java/com/springinpractice/ch01/service/AccountService.java index 68a692e..b788026 100644 --- a/src/main/java/com/springinpractice/ch01/service/AccountService.java +++ b/src/main/java/com/springinpractice/ch01/service/AccountService.java @@ -1,30 +1,14 @@ -//Source project: sip01, branch: 02 (Maven Project) +//Source project: sip01, branch: 03 (Maven Project) package com.springinpractice.ch01.service; -import java.util.Properties; -import java.io.InputStream; -import org.apache.commons.dbcp.BasicDataSource; -import com.springinpractice.ch01.dao.jdbc.JdbcAccountDao; +import com.springinpractice.ch01.dao.AccountDao; public class AccountService { - private JdbcAccountDao accountDao; + private AccountDao accountDao; - public AccountService() { - try { - Properties props = new Properties(); - InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("dataSource.properties"); - props.load(inputStream); - - BasicDataSource dataSource = new BasicDataSource(); - dataSource.setDriverClassName(props.getProperty("driverClassName")); - dataSource.setUrl(props.getProperty("url")); - dataSource.setUsername(props.getProperty("username")); - dataSource.setPassword(props.getProperty("password")); - - accountDao = new JdbcAccountDao(); - accountDao.setDataSource(dataSource); - } catch (Exception e) { - throw new RuntimeException(e); - } - } -} + public AccountService() {} + public void setAccountDao(AccountDao accountDao) { + this.accountDao = accountDao; + } + +} \ No newline at end of file diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml new file mode 100644 index 0000000..87d5e76 --- /dev/null +++ b/src/main/resources/applicationContext.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 30e3bae2f1ea0aecd19c992a8e424e1ea9f6f3db Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 26 Feb 2012 18:20:47 -0500 Subject: [PATCH 04/25] Changes required for branch 04 --- .../springinpractice/ch01/dao/AccountDao.java | 8 +++- .../ch01/dao/csv/CsvAccountDao.java | 42 +++++++++++++++++++ .../ch01/dao/jdbc/JdbcAccountDao.java | 9 +++- .../springinpractice/ch01/model/Account.java | 30 +++++++++++++ .../ch01/service/AccountService.java | 32 +++++++++++++- src/main/resources/accounts.csv | 3 ++ src/main/resources/applicationContext.xml | 34 ++++++--------- 7 files changed, 133 insertions(+), 25 deletions(-) create mode 100644 src/main/java/com/springinpractice/ch01/dao/csv/CsvAccountDao.java create mode 100644 src/main/java/com/springinpractice/ch01/model/Account.java create mode 100644 src/main/resources/accounts.csv diff --git a/src/main/java/com/springinpractice/ch01/dao/AccountDao.java b/src/main/java/com/springinpractice/ch01/dao/AccountDao.java index 4f968d9..5384f5d 100644 --- a/src/main/java/com/springinpractice/ch01/dao/AccountDao.java +++ b/src/main/java/com/springinpractice/ch01/dao/AccountDao.java @@ -1,6 +1,12 @@ -// Source project: sip01, branch: 01 (Maven Project) +// Source project: sip01, branch: 04 (Maven Project) package com.springinpractice.ch01.dao; +import java.util.List; + +import com.springinpractice.ch01.model.Account; + public interface AccountDao { + List findAll() throws Exception; + } diff --git a/src/main/java/com/springinpractice/ch01/dao/csv/CsvAccountDao.java b/src/main/java/com/springinpractice/ch01/dao/csv/CsvAccountDao.java new file mode 100644 index 0000000..7be2891 --- /dev/null +++ b/src/main/java/com/springinpractice/ch01/dao/csv/CsvAccountDao.java @@ -0,0 +1,42 @@ +// Source project: sip01, branch: 04 (Maven Project) +package com.springinpractice.ch01.dao.csv; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.math.BigDecimal; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import org.springframework.core.io.Resource; +import com.springinpractice.ch01.dao.AccountDao; +import com.springinpractice.ch01.model.Account; + +public class CsvAccountDao implements AccountDao { + + private Resource csvResource; + + public void setCsvResource(Resource csvFile) { + this.csvResource = csvFile; + } + + public List findAll() throws Exception { + List results = new ArrayList(); + + DateFormat fmt = new SimpleDateFormat("MMddyyyy"); + BufferedReader br = new BufferedReader(new FileReader(csvResource.getFile())); + String line; + while ((line = br.readLine()) != null) { + String[] fields = line.split(","); + + String accountNo = fields[0]; + BigDecimal balance = new BigDecimal(fields[1]); + Date lastPaidOn = fmt.parse(fields[2]); + Account account = new Account(accountNo, balance, lastPaidOn); + results.add(account); + } + br.close(); + return results; + } +} diff --git a/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java b/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java index 9c467cd..7ed426e 100644 --- a/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java +++ b/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java @@ -1,9 +1,12 @@ -// Source project: sip01, branch: 02 (Maven Project) +// Source project: sip01, branch: 04 (Maven Project) package com.springinpractice.ch01.dao.jdbc; +import java.util.List; + import javax.sql.DataSource; import com.springinpractice.ch01.dao.AccountDao; +import com.springinpractice.ch01.model.Account; public class JdbcAccountDao implements AccountDao { @@ -13,6 +16,10 @@ public JdbcAccountDao() {} public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; + } + + public List findAll() throws Exception { + throw new UnsupportedOperationException("This method has not been implemented"); } } diff --git a/src/main/java/com/springinpractice/ch01/model/Account.java b/src/main/java/com/springinpractice/ch01/model/Account.java new file mode 100644 index 0000000..d3df8d6 --- /dev/null +++ b/src/main/java/com/springinpractice/ch01/model/Account.java @@ -0,0 +1,30 @@ +// Source project: sip01, branch: 04 (Maven Project) +package com.springinpractice.ch01.model; + +import java.math.BigDecimal; +import java.util.Date; + +public class Account { + + private String accountNo; + private BigDecimal balance; + private Date lastPaidOn; + + public Account(String accountNo, BigDecimal balance, Date lastPaidOn) { + this.accountNo = accountNo; + this.balance = balance; + this.lastPaidOn = lastPaidOn; + } + + public String getAccountNo() { + return accountNo; + } + + public BigDecimal getBalance() { + return balance; + } + + public Date getLastPaidOn() { + return lastPaidOn; + } +} diff --git a/src/main/java/com/springinpractice/ch01/service/AccountService.java b/src/main/java/com/springinpractice/ch01/service/AccountService.java index b788026..939bac9 100644 --- a/src/main/java/com/springinpractice/ch01/service/AccountService.java +++ b/src/main/java/com/springinpractice/ch01/service/AccountService.java @@ -1,6 +1,14 @@ -//Source project: sip01, branch: 03 (Maven Project) +//Source project: sip01, branch: 04 (Maven Project) package com.springinpractice.ch01.service; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.List; + import com.springinpractice.ch01.dao.AccountDao; +import com.springinpractice.ch01.model.Account; public class AccountService { private AccountDao accountDao; @@ -10,5 +18,27 @@ public AccountService() {} public void setAccountDao(AccountDao accountDao) { this.accountDao = accountDao; } + + public List findDeliquentAccounts() throws Exception { + List delinquentAccounts = new ArrayList(); + List accounts = accountDao.findAll(); + + Date thirtyDaysAgo = daysAgo(30); + for (Account account : accounts) { + boolean owesMoney = account.getBalance().compareTo(BigDecimal.ZERO) > 0; + boolean thirtyDaysLate = account.getLastPaidOn().compareTo(thirtyDaysAgo) <= 0; + + if (owesMoney && thirtyDaysLate) { + delinquentAccounts.add(account); + } + } + return delinquentAccounts; + } + + private static Date daysAgo(int days) { + GregorianCalendar gc = new GregorianCalendar(); + gc.add(Calendar.DATE, -days); + return gc.getTime(); + } } \ No newline at end of file diff --git a/src/main/resources/accounts.csv b/src/main/resources/accounts.csv new file mode 100644 index 0000000..25096ad --- /dev/null +++ b/src/main/resources/accounts.csv @@ -0,0 +1,3 @@ +100,0,09012008 +200,100,08012008 +300,-100,09012008 \ No newline at end of file diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml index 87d5e76..123b43f 100644 --- a/src/main/resources/applicationContext.xml +++ b/src/main/resources/applicationContext.xml @@ -1,26 +1,16 @@ - + - - - - - - - - - - - - - - - + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> + + + + + + + + \ No newline at end of file From 674d181e150f743a504d86310094b33219b2aa70 Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 26 Feb 2012 19:19:35 -0500 Subject: [PATCH 05/25] Added ConsoleApp.java to run branch 04 example --- .../com/springinpractice/ch01/ConsoleApp.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/main/java/com/springinpractice/ch01/ConsoleApp.java diff --git a/src/main/java/com/springinpractice/ch01/ConsoleApp.java b/src/main/java/com/springinpractice/ch01/ConsoleApp.java new file mode 100644 index 0000000..eb3c44b --- /dev/null +++ b/src/main/java/com/springinpractice/ch01/ConsoleApp.java @@ -0,0 +1,22 @@ +// Source project: sip01, branch: 04 (Maven Project) +package com.springinpractice.ch01; + +import java.util.List; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +import com.springinpractice.ch01.model.Account; +import com.springinpractice.ch01.service.AccountService; + +public class ConsoleApp { + public static void main(String[] args) throws Exception { + ApplicationContext appCtx = new ClassPathXmlApplicationContext("applicationContext.xml"); + AccountService accountService = (AccountService) appCtx.getBean("accountService"); + List delinquentAccounts = accountService.findDeliquentAccounts(); + + for (Account a : delinquentAccounts) { + System.out.println(a.getAccountNo()); + } + } +} From 709e4244d0db025b53a8180e1fa519cac227ae79 Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 26 Feb 2012 19:53:36 -0500 Subject: [PATCH 06/25] Branch 05 changes --- src/main/resources/springbook.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/main/resources/springbook.properties diff --git a/src/main/resources/springbook.properties b/src/main/resources/springbook.properties new file mode 100644 index 0000000..5ad3fe8 --- /dev/null +++ b/src/main/resources/springbook.properties @@ -0,0 +1,8 @@ +# Change springbook.properties to reflect your environment +dataSource.driverClassName=com.mysql.jdbc.Driver +dataSource.url=jdbc:mysql://localhost:3306/springbook?autoReconnect=true +dataSource.username=root +dataSource.password= +mailSender.host=mail.kattare.com +recaptcha.publicKey=get_one_from_recaptcha_website +recaptcha.privateKey=get_one_from_recaptcha_website \ No newline at end of file From b4592bb0c1443afd5871061688388848076173a6 Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 26 Feb 2012 19:54:24 -0500 Subject: [PATCH 07/25] changed value to ref --- src/main/resources/applicationContext.xml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml index 123b43f..57d0e67 100644 --- a/src/main/resources/applicationContext.xml +++ b/src/main/resources/applicationContext.xml @@ -1,16 +1,30 @@ - + - - - + + + + + + + + + + + + + + + + \ No newline at end of file From 572a369e75b804eed481861a2bbf5fdf7cf1478b Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 26 Feb 2012 19:58:57 -0500 Subject: [PATCH 08/25] updated spring schema reference --- src/main/resources/applicationContext.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml index 57d0e67..cd643c8 100644 --- a/src/main/resources/applicationContext.xml +++ b/src/main/resources/applicationContext.xml @@ -4,7 +4,7 @@ + http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> From 9162dba4839f1133f1d9f1fbd8e4476a84ed2b5e Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 26 Feb 2012 20:00:32 -0500 Subject: [PATCH 09/25] updated spring schema version --- src/main/resources/applicationContext.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml index 123b43f..31cad45 100644 --- a/src/main/resources/applicationContext.xml +++ b/src/main/resources/applicationContext.xml @@ -4,7 +4,7 @@ + http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> From a9b333bf28a133b823a6fcd769736d172820761f Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 26 Feb 2012 20:15:11 -0500 Subject: [PATCH 10/25] Changes to support branch 06 --- src/main/resources/applicationContext.xml | 36 ++++++++++++----------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml index cd643c8..8e9547e 100644 --- a/src/main/resources/applicationContext.xml +++ b/src/main/resources/applicationContext.xml @@ -1,30 +1,32 @@ - + - - - - + - - - + - - - + - - - - - + class="org.apache.commons.dbcp.BasicDataSource" + destroy-method="close" + p:driverClassName="${dataSource.driverClassName}" + p:url="${dataSource.url}" + p:username="${dataSource.username}" + p:password="${dataSource.password}"/> \ No newline at end of file From 72b24234d742ee293c3c51e0afa7ba6893b5726f Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 26 Feb 2012 20:35:55 -0500 Subject: [PATCH 11/25] Branch 07 changes --- .../ch01/dao/jdbc/JdbcAccountDao.java | 5 ++++- .../ch01/service/AccountService.java | 6 +++++- src/main/resources/applicationContext.xml | 18 +++++++++++------- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java b/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java index 7ed426e..f31e3fd 100644 --- a/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java +++ b/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java @@ -1,15 +1,18 @@ -// Source project: sip01, branch: 04 (Maven Project) +// Source project: sip01, branch: 07 (Maven Project) package com.springinpractice.ch01.dao.jdbc; import java.util.List; import javax.sql.DataSource; +import org.springframework.beans.factory.annotation.Autowired; + import com.springinpractice.ch01.dao.AccountDao; import com.springinpractice.ch01.model.Account; public class JdbcAccountDao implements AccountDao { + @Autowired private DataSource dataSource; public JdbcAccountDao() {} diff --git a/src/main/java/com/springinpractice/ch01/service/AccountService.java b/src/main/java/com/springinpractice/ch01/service/AccountService.java index 939bac9..8fc49ef 100644 --- a/src/main/java/com/springinpractice/ch01/service/AccountService.java +++ b/src/main/java/com/springinpractice/ch01/service/AccountService.java @@ -1,4 +1,4 @@ -//Source project: sip01, branch: 04 (Maven Project) +//Source project: sip01, branch: 07 (Maven Project) package com.springinpractice.ch01.service; import java.math.BigDecimal; import java.util.ArrayList; @@ -7,10 +7,14 @@ import java.util.GregorianCalendar; import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import com.springinpractice.ch01.dao.AccountDao; import com.springinpractice.ch01.model.Account; public class AccountService { + + @Autowired private AccountDao accountDao; public AccountService() {} diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml index 8e9547e..d7ff3ce 100644 --- a/src/main/resources/applicationContext.xml +++ b/src/main/resources/applicationContext.xml @@ -1,11 +1,17 @@ - + + xmlns:context="http://www.springframework.org/schema/context" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans-3.1.xsd + http://www.springframework.org/schema/context + http://www.springframework.org/schema/context/spring-context-3.1.xsd"> + + + class="com.springinpractice.ch01.service.AccountService"/> + class="com.springinpractice.ch01.dao.jdbc.JdbcAccountDao"/> Date: Sun, 26 Feb 2012 20:44:20 -0500 Subject: [PATCH 12/25] Changes to support branch 08 --- .../ch01/dao/jdbc/JdbcAccountDao.java | 7 +++---- .../ch01/service/AccountService.java | 5 +++-- src/main/resources/applicationContext.xml | 14 +++----------- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java b/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java index f31e3fd..9a60455 100644 --- a/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java +++ b/src/main/java/com/springinpractice/ch01/dao/jdbc/JdbcAccountDao.java @@ -1,15 +1,14 @@ -// Source project: sip01, branch: 07 (Maven Project) +// Source project: sip01, branch: 08 (Maven Project) package com.springinpractice.ch01.dao.jdbc; import java.util.List; - import javax.sql.DataSource; - import org.springframework.beans.factory.annotation.Autowired; - +import org.springframework.stereotype.Component; import com.springinpractice.ch01.dao.AccountDao; import com.springinpractice.ch01.model.Account; +@Component public class JdbcAccountDao implements AccountDao { @Autowired diff --git a/src/main/java/com/springinpractice/ch01/service/AccountService.java b/src/main/java/com/springinpractice/ch01/service/AccountService.java index 8fc49ef..d21b1c2 100644 --- a/src/main/java/com/springinpractice/ch01/service/AccountService.java +++ b/src/main/java/com/springinpractice/ch01/service/AccountService.java @@ -1,4 +1,4 @@ -//Source project: sip01, branch: 07 (Maven Project) +//Source project: sip01, branch: 08 (Maven Project) package com.springinpractice.ch01.service; import java.math.BigDecimal; import java.util.ArrayList; @@ -6,12 +6,13 @@ import java.util.Date; import java.util.GregorianCalendar; import java.util.List; - import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import com.springinpractice.ch01.dao.AccountDao; import com.springinpractice.ch01.model.Account; +@Component public class AccountService { @Autowired diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml index d7ff3ce..c85fa48 100644 --- a/src/main/resources/applicationContext.xml +++ b/src/main/resources/applicationContext.xml @@ -1,5 +1,5 @@ - + - + - - - - + p:location="springbook.properties"/> Date: Sun, 11 Mar 2012 10:52:12 -0400 Subject: [PATCH 13/25] formatting changes --- .../com/springinpractice/ch01/service/AccountService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/springinpractice/ch01/service/AccountService.java b/src/main/java/com/springinpractice/ch01/service/AccountService.java index 68a692e..9bde9ce 100644 --- a/src/main/java/com/springinpractice/ch01/service/AccountService.java +++ b/src/main/java/com/springinpractice/ch01/service/AccountService.java @@ -11,11 +11,13 @@ public class AccountService { public AccountService() { try { Properties props = new Properties(); - InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("dataSource.properties"); + InputStream inputStream = this.getClass().getClassLoader() + .getResourceAsStream("dataSource.properties"); props.load(inputStream); BasicDataSource dataSource = new BasicDataSource(); - dataSource.setDriverClassName(props.getProperty("driverClassName")); + dataSource.setDriverClassName( + props.getProperty("driverClassName")); dataSource.setUrl(props.getProperty("url")); dataSource.setUsername(props.getProperty("username")); dataSource.setPassword(props.getProperty("password")); From 81295fda20a2d00084b5e80a18e34b0bbece4504 Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 11 Mar 2012 11:09:01 -0400 Subject: [PATCH 14/25] formatting changes --- src/main/resources/applicationContext.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml index 87d5e76..2181668 100644 --- a/src/main/resources/applicationContext.xml +++ b/src/main/resources/applicationContext.xml @@ -9,7 +9,8 @@ - + From 0d50d664540f13099b536af169b6a1efe60c81f1 Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 11 Mar 2012 11:17:07 -0400 Subject: [PATCH 15/25] formatting changes --- .../com/springinpractice/ch01/dao/csv/CsvAccountDao.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/springinpractice/ch01/dao/csv/CsvAccountDao.java b/src/main/java/com/springinpractice/ch01/dao/csv/CsvAccountDao.java index 7be2891..1a8e62f 100644 --- a/src/main/java/com/springinpractice/ch01/dao/csv/CsvAccountDao.java +++ b/src/main/java/com/springinpractice/ch01/dao/csv/CsvAccountDao.java @@ -25,7 +25,8 @@ public List findAll() throws Exception { List results = new ArrayList(); DateFormat fmt = new SimpleDateFormat("MMddyyyy"); - BufferedReader br = new BufferedReader(new FileReader(csvResource.getFile())); + BufferedReader br = new BufferedReader( + new FileReader(csvResource.getFile())); String line; while ((line = br.readLine()) != null) { String[] fields = line.split(","); @@ -33,7 +34,8 @@ public List findAll() throws Exception { String accountNo = fields[0]; BigDecimal balance = new BigDecimal(fields[1]); Date lastPaidOn = fmt.parse(fields[2]); - Account account = new Account(accountNo, balance, lastPaidOn); + Account account = + new Account(accountNo, balance, lastPaidOn); results.add(account); } br.close(); From c145ff8ddb545c4ba5c7b9dcaec9e99b147a851d Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 11 Mar 2012 11:19:09 -0400 Subject: [PATCH 16/25] formatting changes --- src/main/resources/applicationContext.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml index 31cad45..8eb2499 100644 --- a/src/main/resources/applicationContext.xml +++ b/src/main/resources/applicationContext.xml @@ -6,11 +6,13 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> - + - + \ No newline at end of file From 13bb3987373d7a02b5209e4ece42f338b13f4924 Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 11 Mar 2012 11:27:14 -0400 Subject: [PATCH 17/25] formatting changes --- .../com/springinpractice/ch01/service/AccountService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/springinpractice/ch01/service/AccountService.java b/src/main/java/com/springinpractice/ch01/service/AccountService.java index 939bac9..3476081 100644 --- a/src/main/java/com/springinpractice/ch01/service/AccountService.java +++ b/src/main/java/com/springinpractice/ch01/service/AccountService.java @@ -25,8 +25,10 @@ public List findDeliquentAccounts() throws Exception { Date thirtyDaysAgo = daysAgo(30); for (Account account : accounts) { - boolean owesMoney = account.getBalance().compareTo(BigDecimal.ZERO) > 0; - boolean thirtyDaysLate = account.getLastPaidOn().compareTo(thirtyDaysAgo) <= 0; + boolean owesMoney = account.getBalance() + .compareTo(BigDecimal.ZERO) > 0; + boolean thirtyDaysLate = account.getLastPaidOn() + .compareTo(thirtyDaysAgo) <= 0; if (owesMoney && thirtyDaysLate) { delinquentAccounts.add(account); From 3d62163404fab2fe30500b6f6d80d73a5d2e3d03 Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 11 Mar 2012 11:33:05 -0400 Subject: [PATCH 18/25] formatting changes --- src/main/java/com/springinpractice/ch01/ConsoleApp.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/springinpractice/ch01/ConsoleApp.java b/src/main/java/com/springinpractice/ch01/ConsoleApp.java index eb3c44b..7121d8e 100644 --- a/src/main/java/com/springinpractice/ch01/ConsoleApp.java +++ b/src/main/java/com/springinpractice/ch01/ConsoleApp.java @@ -11,9 +11,12 @@ public class ConsoleApp { public static void main(String[] args) throws Exception { - ApplicationContext appCtx = new ClassPathXmlApplicationContext("applicationContext.xml"); - AccountService accountService = (AccountService) appCtx.getBean("accountService"); - List delinquentAccounts = accountService.findDeliquentAccounts(); + ApplicationContext appCtx = + new ClassPathXmlApplicationContext("applicationContext.xml"); + AccountService accountService = + (AccountService)appCtx.getBean("accountService"); + List delinquentAccounts = accountService + .findDeliquentAccounts(); for (Account a : delinquentAccounts) { System.out.println(a.getAccountNo()); From 4039547775e011e31c326f985ed424ddb6d2e727 Mon Sep 17 00:00:00 2001 From: Joshua White Date: Sun, 11 Mar 2012 11:52:46 -0400 Subject: [PATCH 19/25] formatting changes --- src/main/resources/applicationContext.xml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml index cd643c8..a164011 100644 --- a/src/main/resources/applicationContext.xml +++ b/src/main/resources/applicationContext.xml @@ -11,17 +11,21 @@ - + - + - + class="org.apache.commons.dbcp.BasicDataSource" + destroy-method="close"> + From 239175c1bbbc42cc881b6783930f71e298aa8f1f Mon Sep 17 00:00:00 2001 From: Willie Wheeler Date: Wed, 1 May 2013 00:57:46 -0700 Subject: [PATCH 20/25] Merged 01 --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index 4c0af05..9cab852 100644 --- a/README +++ b/README @@ -1,5 +1,5 @@ ======================================================================================================================== -README - Spring in Practice Recipe 1.1 +README - Spring in Practice Recipe 1.2 Copyright (c) 2013 Manning Publications Co. From a37e496d309b2a1aaed55b147a4b837dc16a337b Mon Sep 17 00:00:00 2001 From: Willie Wheeler Date: Wed, 1 May 2013 01:02:23 -0700 Subject: [PATCH 21/25] Added missing boilerplate --- .../ch01/service/AccountService.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/springinpractice/ch01/service/AccountService.java b/src/main/java/com/springinpractice/ch01/service/AccountService.java index 9bde9ce..a924f2e 100644 --- a/src/main/java/com/springinpractice/ch01/service/AccountService.java +++ b/src/main/java/com/springinpractice/ch01/service/AccountService.java @@ -1,9 +1,18 @@ -//Source project: sip01, branch: 02 (Maven Project) +/* + * Copyright (c) 2013 Manning Publications Co. + * + * Book: http://manning.com/wheeler/ + * Blog: http://springinpractice.com/ + * Code: https://github.com/springinpractice + */ package com.springinpractice.ch01.service; -import java.util.Properties; + import java.io.InputStream; +import java.util.Properties; + import org.apache.commons.dbcp.BasicDataSource; -import com.springinpractice.ch01.dao.jdbc.JdbcAccountDao; + +import com.springinpractice.ch01.dao.jdbc.JdbcAccountDao; public class AccountService { private JdbcAccountDao accountDao; From 12949474cfbe0e1b5cd3ca16a57cc31c78ae0f67 Mon Sep 17 00:00:00 2001 From: Willie Wheeler Date: Wed, 1 May 2013 01:05:30 -0700 Subject: [PATCH 22/25] Added boilerplate --- src/main/java/com/springinpractice/ch01/ConsoleApp.java | 8 +++++++- .../com/springinpractice/ch01/dao/csv/CsvAccountDao.java | 8 +++++++- .../java/com/springinpractice/ch01/model/Account.java | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/springinpractice/ch01/ConsoleApp.java b/src/main/java/com/springinpractice/ch01/ConsoleApp.java index 7121d8e..0fcd3ae 100644 --- a/src/main/java/com/springinpractice/ch01/ConsoleApp.java +++ b/src/main/java/com/springinpractice/ch01/ConsoleApp.java @@ -1,4 +1,10 @@ -// Source project: sip01, branch: 04 (Maven Project) +/* + * Copyright (c) 2013 Manning Publications Co. + * + * Book: http://manning.com/wheeler/ + * Blog: http://springinpractice.com/ + * Code: https://github.com/springinpractice + */ package com.springinpractice.ch01; import java.util.List; diff --git a/src/main/java/com/springinpractice/ch01/dao/csv/CsvAccountDao.java b/src/main/java/com/springinpractice/ch01/dao/csv/CsvAccountDao.java index 1a8e62f..0d6a2f3 100644 --- a/src/main/java/com/springinpractice/ch01/dao/csv/CsvAccountDao.java +++ b/src/main/java/com/springinpractice/ch01/dao/csv/CsvAccountDao.java @@ -1,4 +1,10 @@ -// Source project: sip01, branch: 04 (Maven Project) +/* + * Copyright (c) 2013 Manning Publications Co. + * + * Book: http://manning.com/wheeler/ + * Blog: http://springinpractice.com/ + * Code: https://github.com/springinpractice + */ package com.springinpractice.ch01.dao.csv; import java.io.BufferedReader; diff --git a/src/main/java/com/springinpractice/ch01/model/Account.java b/src/main/java/com/springinpractice/ch01/model/Account.java index d3df8d6..c926537 100644 --- a/src/main/java/com/springinpractice/ch01/model/Account.java +++ b/src/main/java/com/springinpractice/ch01/model/Account.java @@ -1,4 +1,10 @@ -// Source project: sip01, branch: 04 (Maven Project) +/* + * Copyright (c) 2013 Manning Publications Co. + * + * Book: http://manning.com/wheeler/ + * Blog: http://springinpractice.com/ + * Code: https://github.com/springinpractice + */ package com.springinpractice.ch01.model; import java.math.BigDecimal; From 3b707f1305e7c679035c573e2fa9d00809b60f75 Mon Sep 17 00:00:00 2001 From: Willie Wheeler Date: Wed, 1 May 2013 01:07:24 -0700 Subject: [PATCH 23/25] Fixed recipe number --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index f772044..2d4b8ac 100644 --- a/README +++ b/README @@ -1,5 +1,5 @@ ======================================================================================================================== -README - Spring in Practice Recipe 1.4 +README - Spring in Practice Recipe 1.5 Copyright (c) 2013 Manning Publications Co. From 61a8866814de22798d93a71e96ae11088069dba4 Mon Sep 17 00:00:00 2001 From: Willie Wheeler Date: Wed, 1 May 2013 01:07:50 -0700 Subject: [PATCH 24/25] Fixed recipe number --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index 2d4b8ac..4f7242b 100644 --- a/README +++ b/README @@ -1,5 +1,5 @@ ======================================================================================================================== -README - Spring in Practice Recipe 1.5 +README - Spring in Practice Recipe 1.6 Copyright (c) 2013 Manning Publications Co. From 49295f5d5ec5f2f4cf50a85b78f2109b446cc401 Mon Sep 17 00:00:00 2001 From: Willie Wheeler Date: Wed, 1 May 2013 01:10:45 -0700 Subject: [PATCH 25/25] Fixed recipe number --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index fd59aa3..408cd7c 100644 --- a/README +++ b/README @@ -1,5 +1,5 @@ ======================================================================================================================== -README - Spring in Practice Recipe 1.7 +README - Spring in Practice Recipe 1.8 Copyright (c) 2013 Manning Publications Co.