[jboss-cvs] JBossAS SVN: r99073 - in projects/snowdrop/examples/trunk/sportsclub: sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate and 19 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jan 6 14:43:04 EST 2010
Author: marius.bogoevici
Date: 2010-01-06 14:43:03 -0500 (Wed, 06 Jan 2010)
New Revision: 99073
Added:
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/java/
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/java/org/
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/java/org/jboss/
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/java/org/jboss/spring/
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/java/org/jboss/spring/samples/
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/java/org/jboss/spring/samples/sportsclub/
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/java/org/jboss/spring/samples/sportsclub/invoicing/
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/java/org/jboss/spring/samples/sportsclub/invoicing/services/
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/java/org/jboss/spring/samples/sportsclub/invoicing/services/TestBillingService.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/resources/
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/resources/service-context.xml
Removed:
projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateBalanceRepository.java
Modified:
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Account.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Balance.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/resources/dao-context.xml
projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountDao.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/pom.xml
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingServiceImpl.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/pom.xml
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/WEB-INF/jsp/dummy.jsp
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/index.jsp
projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionServiceImpl.java
Log:
fixes + domain cleanup + spring testing for EJBs
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Account.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Account.java 2010-01-06 19:39:45 UTC (rev 99072)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Account.java 2010-01-06 19:43:03 UTC (rev 99073)
@@ -5,7 +5,9 @@
import java.util.Date;
import javax.persistence.CascadeType;
+import javax.persistence.Embedded;
import javax.persistence.Entity;
+import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@@ -22,21 +24,19 @@
@GeneratedValue
private Long id;
- @OneToOne(cascade = {CascadeType.ALL})
+ @OneToOne(cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
private Person subscriber;
- @OneToOne(cascade = {CascadeType.ALL})
- @PrimaryKeyJoinColumn
+ @Embedded
private Balance balance;
private Date creationDate;
- public void Account()
+ public Account()
{
this.balance = new Balance();
- this.balance.setAccount(this);
- this.balance.setCurrentBalance(BigDecimal.ZERO);
+ this.balance.setAmount(BigDecimal.ZERO);
}
@ManyToOne
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Balance.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Balance.java 2010-01-06 19:39:45 UTC (rev 99072)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Balance.java 2010-01-06 19:43:03 UTC (rev 99073)
@@ -2,63 +2,31 @@
import java.math.BigDecimal;
-import javax.annotation.Generated;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.OneToOne;
+import javax.persistence.Embeddable;
-import org.hibernate.annotations.GenericGenerator;
-import org.hibernate.annotations.Parameter;
-
- at Entity
+ at Embeddable
public class Balance
{
- @Id
- @GeneratedValue(generator = "foreign")
- @GenericGenerator(
- name = "foreign", strategy = "foreign", parameters = {@Parameter(name = "property", value = "account")}
- )
- private Long id;
- @OneToOne(mappedBy = "balance")
- private Account account;
+ private BigDecimal amount;
- private BigDecimal currentBalance;
-
-
- public Long getId()
+ public BigDecimal getAmount()
{
- return id;
+ return amount;
}
- public Account getAccount()
+ public void setAmount(BigDecimal amount)
{
- return account;
+ this.amount = amount;
}
- public void setAccount(Account account)
- {
- this.account = account;
- }
-
- public BigDecimal getCurrentBalance()
- {
- return currentBalance;
- }
-
- public void setCurrentBalance(BigDecimal currentBalance)
- {
- this.currentBalance = currentBalance;
- }
-
public void credit(BigDecimal amount)
{
- this.currentBalance.subtract(amount);
+ this.amount.subtract(amount);
}
public void debit(BigDecimal amount)
{
- this.currentBalance.add(amount);
+ this.amount.add(amount);
}
}
Deleted: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateBalanceRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateBalanceRepository.java 2010-01-06 19:39:45 UTC (rev 99072)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateBalanceRepository.java 2010-01-06 19:43:03 UTC (rev 99073)
@@ -1,34 +0,0 @@
-package org.jboss.snowdrop.samples.sportsclub.dao.hibernate;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Balance;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Payment;
-import org.jboss.snowdrop.samples.sportsclub.domain.repository.BalanceRepository;
-
-import org.hibernate.Criteria;
-import org.hibernate.criterion.Restrictions;
-
-public class HibernateBalanceRepository extends HibernateRepository<Balance,Long> implements BalanceRepository
-{
- public HibernateBalanceRepository()
- {
- super(Balance.class);
- }
-
- public Balance findForAccount(Account account)
- {
- Criteria criteria = getCurrentSession().createCriteria(Payment.class);
- criteria.createCriteria("account").add(Restrictions.eq("id", account.getId()));
- Balance balance = (Balance) criteria.uniqueResult();
- if (balance == null)
- {
- balance = new Balance();
- balance.setAccount(account);
- balance.setCurrentBalance(BigDecimal.ZERO);
- }
- return balance;
- }
-}
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/resources/dao-context.xml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/resources/dao-context.xml 2010-01-06 19:39:45 UTC (rev 99072)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/resources/dao-context.xml 2010-01-06 19:43:03 UTC (rev 99073)
@@ -56,8 +56,4 @@
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
- <bean id="balanceRepository" class="org.jboss.snowdrop.samples.sportsclub.dao.hibernate.HibernateBalanceRepository">
- <property name="sessionFactory" ref="sessionFactory"/>
- </bean>
-
</beans>
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountDao.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountDao.java 2010-01-06 19:39:45 UTC (rev 99072)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountDao.java 2010-01-06 19:43:03 UTC (rev 99073)
@@ -1,9 +1,12 @@
package org.jboss.snowdrop.samples.sportsclub.dao.hibernate;
import java.util.Collection;
+import java.util.List;
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
import org.jboss.snowdrop.samples.sportsclub.domain.repository.AccountRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.AccountSearchCriteria;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.PersonSearchCriteria;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -29,5 +32,13 @@
{
Collection<Account> accounts = accountRepository.findAll();
Assert.assertEquals(12, accounts.size());
+
+ AccountSearchCriteria criteria = new AccountSearchCriteria();
+ PersonSearchCriteria personCriteria = new PersonSearchCriteria();
+ personCriteria.setName("Vetinari");
+ criteria.setPersonSearchCriteria(personCriteria);
+ List<Account> accountList = accountRepository.findByCriteria(criteria);
+ Account account = accountList.get(0);
+ Assert.assertNotNull(account.getBalance());
}
}
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/pom.xml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/pom.xml 2010-01-06 19:39:45 UTC (rev 99072)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/pom.xml 2010-01-06 19:43:03 UTC (rev 99073)
@@ -36,6 +36,40 @@
<artifactId>snowdrop-deployers</artifactId>
<version>1.0.0.GA</version>
</dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.snowdrop.samples.sportsclub</groupId>
+ <artifactId>sportsclub-hibernate-dao</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.snowdrop.samples.sportsclub</groupId>
+ <artifactId>sportsclub-hibernate-dao</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.snowdrop.samples.sportsclub</groupId>
+ <artifactId>sportsclub-test-infrastructure</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-dbcp</groupId>
+ <artifactId>commons-dbcp</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
<plugins>
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingServiceImpl.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingServiceImpl.java 2010-01-06 19:39:45 UTC (rev 99072)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingServiceImpl.java 2010-01-06 19:43:03 UTC (rev 99073)
@@ -11,6 +11,7 @@
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Balance;
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Invoice;
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Payment;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.AccountRepository;
import org.jboss.snowdrop.samples.sportsclub.domain.repository.BalanceRepository;
import org.jboss.snowdrop.samples.sportsclub.domain.repository.InvoiceRepository;
import org.jboss.snowdrop.samples.sportsclub.domain.repository.PaymentRepository;
@@ -23,12 +24,27 @@
@Spring(bean = "invoiceRepository", jndiName = "SpringDao")
private InvoiceRepository invoiceRepository;
- @Spring(bean = "balanceRepository", jndiName = "SpringDao")
- private BalanceRepository balanceRepository;
+ @Spring(bean = "accountRepository", jndiName = "SpringDao")
+ private AccountRepository accountRepository;
@Spring(bean = "paymentRepository", jndiName = "SpringDao")
private PaymentRepository paymentRepository;
+ public void setPaymentRepository(PaymentRepository paymentRepository)
+ {
+ this.paymentRepository = paymentRepository;
+ }
+
+ public void setAccountRepository(AccountRepository accountRepository)
+ {
+ this.accountRepository = accountRepository;
+ }
+
+ public void setInvoiceRepository(InvoiceRepository invoiceRepository)
+ {
+ this.invoiceRepository = invoiceRepository;
+ }
+
public Invoice generateInvoice(Account account)
{
Invoice invoice = new Invoice();
@@ -36,9 +52,9 @@
invoice.setAmount(account.getFeePerBillingPeriod());
invoice.setDate(new Date());
invoiceRepository.save(invoice);
- Balance balance = balanceRepository.findForAccount(account);
+ Balance balance = account.getBalance();
balance.debit(invoice.getAmount());
- balanceRepository.save(balance);
+ accountRepository.save(account);
return invoice;
}
@@ -49,15 +65,9 @@
payment.setAmount(amount);
payment.setDate(new Date());
paymentRepository.save(payment);
- Balance balance = balanceRepository.findForAccount(account);
+ Balance balance = account.getBalance();
balance.credit(amount);
- balanceRepository.save(balance);
+ accountRepository.save(account);
}
-
-
- public Balance getBalance(Account account)
- {
- return balanceRepository.findForAccount(account);
- }
-
+
}
Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/java/org/jboss/spring/samples/sportsclub/invoicing/services/TestBillingService.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/java/org/jboss/spring/samples/sportsclub/invoicing/services/TestBillingService.java (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/java/org/jboss/spring/samples/sportsclub/invoicing/services/TestBillingService.java 2010-01-06 19:43:03 UTC (rev 99073)
@@ -0,0 +1,35 @@
+package org.jboss.spring.samples.sportsclub.invoicing.services;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.transaction.annotation.Transactional;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Invoice;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.AccountRepository;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author Marius Bogoevici
+ */
+ at ContextConfiguration(locations = {"classpath:test-infrastructure.xml", "classpath:dao-context.xml", "classpath:service-context.xml"})
+ at RunWith(SpringJUnit4ClassRunner.class)
+public class TestBillingService
+{
+
+ @Autowired
+ BillingService billingService;
+
+ @Autowired
+ AccountRepository accountRepository;
+
+ @Transactional @Test
+ public void testBillingService()
+ {
+ Account account = accountRepository.findById(1l);
+ Invoice invoice = billingService.generateInvoice(account);
+ }
+
+}
Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/resources/service-context.xml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/resources/service-context.xml (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/test/resources/service-context.xml 2010-01-06 19:43:03 UTC (rev 99073)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ 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.xsd">
+
+ <bean id="billingService" class="org.jboss.spring.samples.sportsclub.invoicing.services.BillingServiceImpl">
+ <property name="invoiceRepository" ref="invoiceRepository"/>
+ <property name="accountRepository" ref="accountRepository"/>
+ <property name="paymentRepository" ref="paymentRepository"/>
+ </bean>
+
+</beans>
\ No newline at end of file
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/pom.xml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/pom.xml 2010-01-06 19:39:45 UTC (rev 99072)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/pom.xml 2010-01-06 19:43:03 UTC (rev 99073)
@@ -55,8 +55,9 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>jstl</artifactId>
+ <groupId>taglibs</groupId>
+ <artifactId>standard</artifactId>
+ <version>1.1.2</version>
</dependency>
</dependencies>
<build>
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/WEB-INF/jsp/dummy.jsp
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/WEB-INF/jsp/dummy.jsp 2010-01-06 19:39:45 UTC (rev 99072)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/WEB-INF/jsp/dummy.jsp 2010-01-06 19:43:03 UTC (rev 99073)
@@ -1,7 +1,6 @@
-<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
-
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<html>
- <head><title>Simple jsp page</title></head>
+ <head><title>Invoice created</title></head>
<body>Invoice amount: <c:out value="${invoice.amount}"/></body>
</html>
\ No newline at end of file
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/index.jsp
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/index.jsp 2010-01-06 19:39:45 UTC (rev 99072)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/index.jsp 2010-01-06 19:43:03 UTC (rev 99073)
@@ -1,5 +1,5 @@
<html>
<body>
-<h2>Deployed</h2>
+<h2>Deployed again</h2>
</body>
</html>
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionServiceImpl.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionServiceImpl.java 2010-01-06 19:39:45 UTC (rev 99072)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionServiceImpl.java 2010-01-06 19:43:03 UTC (rev 99073)
@@ -69,7 +69,6 @@
account.setMembership(membershipRepository.findById(membershipCode));
account.setBillingType(billingType);
account.setCreationDate(new Date());
- account.resetBalance();
accountRepository.save(account);
return account;
}
More information about the jboss-cvs-commits
mailing list