June 2016 | Trần Đình Thoại

Initiative Spring 4.2.6 project for test driven development (TDD)

1. Create Dynamic Web project, for example at C:\Startup

2. Convert to Maven project

3. Download and unzip TDD-Spring-Blank-master.zip, for example at C:\Blank (from \TDD-Spring-Blank-master\TDD-Spring-Blank)

4. Add following lines to C:\Startup\pom.xml, then build

<dependencies>

<dependencies>
  
<!-- http://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-aop -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-aspects -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-context-support -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-expression -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-instrument -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-instrument</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-instrument-tomcat -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-instrument-tomcat</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-jms -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jms</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-messaging -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-messaging</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-orm -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-oxm -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-oxm</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-tx -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-webmvc-portlet -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc-portlet</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-websocket -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-websocket</artifactId>
    <version>4.2.6.RELEASE</version>
</dependency>
  
  
<dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>4.12</version>
</dependency>
  
  
<!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.0.9.Final</version>
    <exclusions>
     <exclusion>
      <artifactId>dom4j</artifactId>
      <groupId>dom4j</groupId>
     </exclusion>
    </exclusions>
</dependency>
  
<!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>5.0.9.Final</version>
    <exclusions>
     <exclusion>
      <artifactId>dom4j</artifactId>
      <groupId>dom4j</groupId>
     </exclusion>
    </exclusions>
</dependency>

<!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-c3p0</artifactId>
    <version>5.0.9.Final</version>
</dependency>
  
<!-- http://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
</dependency>
  
<!-- http://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
</dependency>
  
<!-- http://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
</dependency>

<!-- http://mvnrepository.com/artifact/org.dom4j/dom4j -->
<dependency>
    <groupId>org.dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>2.0.0</version>
</dependency>


<!-- http://mvnrepository.com/artifact/org.jboss.arquillian.graphene/graphene-webdriver -->
<dependency>
    <groupId>org.jboss.arquillian.graphene</groupId>
    <artifactId>graphene-webdriver</artifactId>
    <version>2.0.3.Final</version>
    <type>pom</type>
</dependency>
  
<!-- http://mvnrepository.com/artifact/org.jboss.arquillian/arquillian-bom -->
<dependency>
    <groupId>org.jboss.arquillian</groupId>
    <artifactId>arquillian-bom</artifactId>
    <version>1.1.5.Final</version>
    <type>pom</type>
</dependency>
    
<!-- http://mvnrepository.com/artifact/org.jboss.arquillian.core/arquillian-core-api -->
<dependency>
    <groupId>org.jboss.arquillian.core</groupId>
    <artifactId>arquillian-core-api</artifactId>
    <version>1.1.5.Final</version>
</dependency>

<!-- http://mvnrepository.com/artifact/org.jboss.arquillian.config/arquillian-config-api -->
<dependency>
    <groupId>org.jboss.arquillian.config</groupId>
    <artifactId>arquillian-config-api</artifactId>
    <version>1.1.5.Final</version>
</dependency>
    
<dependency>
 <groupId>org.jboss.arquillian.extension</groupId>
 <artifactId>arquillian-drone-bom</artifactId>
 <version>1.3.1.Final</version>
 <type>pom</type>
</dependency>

<dependency>
 <groupId>org.jboss.arquillian.selenium</groupId>
 <artifactId>selenium-bom</artifactId>
 <version>2.43.1</version>
 <type>pom</type>
</dependency>
            
<!-- http://mvnrepository.com/artifact/org.jboss.arquillian.junit/arquillian-junit-container -->
<dependency>
    <groupId>org.jboss.arquillian.junit</groupId>
    <artifactId>arquillian-junit-container</artifactId>
    <version>1.1.5.Final</version>
</dependency>
          
 </dependencies>
  

5. Add following lines to C:\Startup\pom.xml, then build

  <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <version>2.6</version>
      <executions>
         <execution>
            <id>copy-dependencies</id>
            <phase>build</phase>
            <goals>
               <goal>copy-dependencies</goal>
            </goals>
            <configuration>
               <outputDirectory>${project.build.directory}/lib</outputDirectory>
               <overWriteReleases>true</overWriteReleases>
               <overWriteSnapshots>true</overWriteSnapshots>
               <overWriteIfNewer>true</overWriteIfNewer>
               <excludes>xml-apis-1.0.b2.jar</excludes>
            </configuration>
         </execution>
      </executions>
   </plugin>      


6. Run following commands, for example on Windows 7

md c:\Startup\src\java

md c:\Startup\src\tests

7. Remove current source folder and add 2 new source folder at c:\Startup\src\java and c:\Startup\src\tests

8. Run following commands, for example on Windows 7

copy C:\Blank\src\java\* C:\Startup\src\java

copy C:\Blank\src\tests\* C:\Startup\src\tests

copy C:\Blank\WebContent\WEB-INF\* C:\Startup\WebContent\WEB-INF

9. Map tdd-spring-blank.com domain to IP of your MySQL server

10. Create 2 databases and users

+ Database: tdd-spring-blank
+ Username: tdd-spring-blank
+ Password: 57551fdfad2c1

+ Database: tdd-spring-blank-test
+ Username: tdd-spring-blank-test
+ Password: 57551fdfad2c1

11. With tdd-spring-blank database, run scripts

/src/tests/blank/models/Schema.sql

/src/tests/blank/models/UserSample.sql
Friday, June 3, 2016 at 1:25 AM

Economics of Money and Banking, Part One

1. Lec 1: The Four Prices of Money

1-1 The Big Picture



1-2 Prerequisites?



1-3 What is a Bank, a Shadow Bank, a Central Bank?



Thursday, June 2, 2016 at 3:15 AM