Skip to content

Commit e07b4eb

Browse files
committed
Added sample data module and team list jsp
1 parent 310253b commit e07b4eb

File tree

12 files changed

+289
-15
lines changed

12 files changed

+289
-15
lines changed

pom.xml

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
<module>service</module>
3838
<module>rest</module>
3939
<module>springmvc</module>
40+
<module>sampledata</module>
4041
</modules>
4142

4243
<dependencyManagement>

sampledata/pom.xml

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>soccer-manager</artifactId>
7+
<groupId>cz.muni.fi.pa165</groupId>
8+
<version>1.0-SNAPSHOT</version>
9+
</parent>
10+
11+
<modelVersion>4.0.0</modelVersion>
12+
<artifactId>sample-data</artifactId>
13+
<groupId>cz.muni.fi.pa165</groupId>
14+
<version>1.0-SNAPSHOT</version>
15+
<name>Sample data for SoccerManager</name>
16+
17+
<dependencies>
18+
<dependency>
19+
<groupId>cz.muni.fi.pa165</groupId>
20+
<artifactId>service</artifactId>
21+
<version>${project.parent.version}</version>
22+
</dependency>
23+
</dependencies>
24+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package cz.muni.fi.pa165.sampledata;
2+
3+
import java.io.IOException;
4+
5+
/**
6+
* @author 445720 Martin Hamernik
7+
* @version 12/2/2017.
8+
*/
9+
public interface SampleDataLoadingFacade {
10+
11+
void loadData() throws IOException;
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
package cz.muni.fi.pa165.sampledata;
2+
3+
import cz.muni.fi.pa165.sampledata.SampleDataLoadingFacade;
4+
import cz.muni.fi.pa165.soccermanager.entity.*;
5+
import cz.muni.fi.pa165.soccermanager.enums.NationalityEnum;
6+
import cz.muni.fi.pa165.soccermanager.enums.PositionEnum;
7+
import cz.muni.fi.pa165.soccermanager.enums.StadiumEnum;
8+
import cz.muni.fi.pa165.soccermanager.service.*;
9+
import org.springframework.stereotype.Component;
10+
import org.springframework.transaction.annotation.Transactional;
11+
12+
import java.io.IOException;
13+
import java.time.LocalDate;
14+
import java.util.ArrayList;
15+
import java.util.List;
16+
17+
/**
18+
* @author 445720 Martin Hamernik
19+
* @version 12/2/2017.
20+
*/
21+
@Component
22+
@Transactional
23+
public class SampleDataLoadingFacadeImpl implements SampleDataLoadingFacade {
24+
25+
private final TeamService teamService;
26+
private final PlayerService playerService;
27+
private final LeagueService leagueService;
28+
private final ManagerService managerService;
29+
private final MatchService matchService;
30+
31+
public SampleDataLoadingFacadeImpl(TeamService teamService,
32+
PlayerService playerService,
33+
LeagueService leagueService,
34+
ManagerService managerService,
35+
MatchService matchService) {
36+
this.teamService = teamService;
37+
this.playerService = playerService;
38+
this.leagueService = leagueService;
39+
this.managerService = managerService;
40+
this.matchService = matchService;
41+
}
42+
43+
@Override
44+
@SuppressWarnings("unused")
45+
public void loadData() throws IOException {
46+
List<League> leagues = new ArrayList<>();
47+
List<Manager> managers = new ArrayList<>();
48+
List<Player> players = new ArrayList<>();
49+
List<Team> teams = new ArrayList<>();
50+
List<Match> matches = new ArrayList<>();
51+
52+
League premierLeague = new League.LeagueBuilder("Premier League", NationalityEnum.England).build();
53+
leagues.add(premierLeague);
54+
League ligaSantander = new League.LeagueBuilder("La Liga Santander", NationalityEnum.Spain).build();
55+
leagues.add(ligaSantander);
56+
League bundesliga = new League.LeagueBuilder("Bundesliga", NationalityEnum.Germany).build();
57+
leagues.add(bundesliga);
58+
59+
Manager mourinho = new Manager.ManagerBuilder("Jose Mourinho", NationalityEnum.Portugal, "[email protected]").build();
60+
managers.add(mourinho);
61+
Manager guardiola = new Manager.ManagerBuilder("Pep Guardiola", NationalityEnum.Spain, "[email protected]").build();
62+
managers.add(guardiola);
63+
Manager klopp = new Manager.ManagerBuilder("Jurgen Klopp", NationalityEnum.Germany, "[email protected]").build();
64+
managers.add(klopp);
65+
Manager admin = new Manager.ManagerBuilder("admin", NationalityEnum.Yemen, "[email protected]", true).build();
66+
managers.add(admin);
67+
68+
Player pogba = new Player.PlayerBuilder(
69+
"Paul Pogba",
70+
PositionEnum.MIDFIELDER,
71+
NationalityEnum.France,
72+
LocalDate.of(1990,1,1))
73+
.number(8)
74+
.passing(90)
75+
.shooting(80)
76+
.speed(70)
77+
.defence(60)
78+
.strength(90)
79+
.goalkeeping(5)
80+
.build();
81+
players.add(pogba);
82+
83+
Player lukaku = new Player.PlayerBuilder(
84+
"Romelu Lukaku",
85+
PositionEnum.ATTACKER,
86+
NationalityEnum.Belgium,
87+
LocalDate.of(1992,1,1))
88+
.number(9)
89+
.passing(60)
90+
.shooting(90)
91+
.speed(60)
92+
.defence(50)
93+
.strength(95)
94+
.goalkeeping(5)
95+
.build();
96+
players.add(lukaku);
97+
98+
Player degea = new Player.PlayerBuilder(
99+
"David Degea",
100+
PositionEnum.GOALKEEPER,
101+
NationalityEnum.Spain,
102+
LocalDate.of(1989,1,1))
103+
.number(1)
104+
.passing(10)
105+
.shooting(5)
106+
.speed(50)
107+
.defence(10)
108+
.strength(30)
109+
.goalkeeping(95)
110+
.build();
111+
players.add(degea);
112+
113+
Player debruyne = new Player.PlayerBuilder(
114+
"Kevin De Bruyne",
115+
PositionEnum.MIDFIELDER,
116+
NationalityEnum.Belgium,
117+
LocalDate.of(1990,1,1))
118+
.number(10)
119+
.passing(95)
120+
.shooting(90)
121+
.speed(65)
122+
.defence(60)
123+
.strength(70)
124+
.goalkeeping(5)
125+
.build();
126+
players.add(debruyne);
127+
128+
Player aguero = new Player.PlayerBuilder(
129+
"Sergio Aguero",
130+
PositionEnum.ATTACKER,
131+
NationalityEnum.Argentina,
132+
LocalDate.of(1992,1,1))
133+
.number(9)
134+
.passing(70)
135+
.shooting(90)
136+
.speed(80)
137+
.defence(40)
138+
.strength(70)
139+
.goalkeeping(5)
140+
.build();
141+
players.add(aguero);
142+
143+
Team united = new Team.TeamBuilder(
144+
"Manchester United",
145+
NationalityEnum.England,
146+
StadiumEnum.Old_Trafford,
147+
premierLeague
148+
).build();
149+
united.addPlayer(pogba);
150+
united.addPlayer(lukaku);
151+
united.addPlayer(degea);
152+
united.setManager(mourinho);
153+
teams.add(united);
154+
155+
Team city = new Team.TeamBuilder(
156+
"Manchester City",
157+
NationalityEnum.England,
158+
StadiumEnum.Etihad_Stadium,
159+
premierLeague
160+
).build();
161+
city.addPlayer(aguero);
162+
city.addPlayer(debruyne);
163+
city.setManager(guardiola);
164+
teams.add(city);
165+
166+
loadToDb(leagues, managers, players, teams, matches);
167+
}
168+
169+
private void loadToDb(List<League> leagues,
170+
List<Manager> managers,
171+
List<Player> players,
172+
List<Team> teams,
173+
List<Match> matches) {
174+
175+
for (Player player: players) {
176+
playerService.create(player);
177+
}
178+
179+
for (Manager manager: managers) {
180+
managerService.create(manager, manager.getName());
181+
}
182+
183+
for (League league: leagues) {
184+
leagueService.insert(league);
185+
}
186+
187+
for (Team team : teams) {
188+
teamService.create(team);
189+
}
190+
191+
for (Match match: matches) {
192+
matchService.createMatch(match);
193+
}
194+
195+
for (League league: leagueService.fetchAll()) {
196+
league.setMatches(matchService.fetchByLeague(league));
197+
}
198+
}
199+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package cz.muni.fi.pa165.sampledata;
2+
3+
import cz.muni.fi.pa165.sampledata.SampleDataLoadingFacade;
4+
import cz.muni.fi.pa165.sampledata.SampleDataLoadingFacadeImpl;
5+
import cz.muni.fi.pa165.soccermanager.service.config.ServiceConfiguration;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.context.annotation.ComponentScan;
8+
import org.springframework.context.annotation.Configuration;
9+
import org.springframework.context.annotation.Import;
10+
11+
import javax.annotation.PostConstruct;
12+
import java.io.IOException;
13+
14+
/**
15+
* @author 445720 Martin Hamernik
16+
* @version 12/2/2017.
17+
*/
18+
19+
@Configuration
20+
@Import(ServiceConfiguration.class)
21+
@ComponentScan(basePackageClasses = {SampleDataLoadingFacadeImpl.class})
22+
public class SoccerManagerSampleDataConfiguration {
23+
24+
@Autowired
25+
SampleDataLoadingFacade sampleDataLoadingFacade;
26+
27+
@PostConstruct
28+
public void dataLoading() throws IOException {
29+
sampleDataLoadingFacade.loadData();
30+
}
31+
}

springmvc/pom.xml

+5
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@
5757
<artifactId>service</artifactId>
5858
<version>1.0-SNAPSHOT</version>
5959
</dependency>
60+
<dependency>
61+
<groupId>cz.muni.fi.pa165</groupId>
62+
<artifactId>sample-data</artifactId>
63+
<version>1.0-SNAPSHOT</version>
64+
</dependency>
6065
</dependencies>
6166

6267
<build>

springmvc/src/main/java/cz/muni/fi/pa165/mvc/config/SpringMvcConfig.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package cz.muni.fi.pa165.mvc.config;
22

3-
import cz.muni.fi.pa165.soccermanager.service.config.ServiceConfiguration;
3+
import cz.muni.fi.pa165.sampledata.SoccerManagerSampleDataConfiguration;
44
import org.springframework.context.annotation.Bean;
55
import org.springframework.context.annotation.ComponentScan;
66
import org.springframework.context.annotation.Configuration;
@@ -22,8 +22,7 @@
2222

2323
@EnableWebMvc
2424
@Configuration
25-
//@Import({SampleData.class});
26-
@Import({ServiceConfiguration.class})
25+
@Import({SoccerManagerSampleDataConfiguration.class})
2726
@ComponentScan(basePackages = "cz.muni.fi.pa165.mvc.controllers")
2827
public class SpringMvcConfig implements WebMvcConfigurer {
2928

springmvc/src/main/java/cz/muni/fi/pa165/mvc/security/ProtectFilter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* @version 12/1/2017.
1717
*/
1818

19-
@WebFilter(urlPatterns = {"/team/*", "/player/*", "/match/*", "/league/*", "/manager/*"})
19+
//@WebFilter(urlPatterns = {"/team/*", "/player/*", "/match/*", "/league/*", "/manager/*"}) resolve problem with auth
2020
public class ProtectFilter implements Filter {
2121

2222
@Override

springmvc/src/main/webapp/WEB-INF/jsp/home.jsp

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
44
<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>
55
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
6+
<%@ taglib tagdir="/WEB-INF/tags" prefix="my" %>
67

78
<my:pagetemplate>
89
<jsp:attribute name="body">

springmvc/src/main/webapp/WEB-INF/jsp/team/list.jsp

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="utf-8" trimDirectiveWhitespaces="false" session="false" %>
33
<%@ taglib tagdir="/WEB-INF/tags" prefix="my" %>
4+
<%@ taglib tagdir="/WEB-INF/tags" prefix="a" %>
45
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
56
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
67
<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<%@ tag pageEncoding="utf-8" trimDirectiveWhitespaces="true" dynamic-attributes="attr" %>
22
<%@ attribute name="href" required="true" %>
33
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
4+
<%@ taglib tagdir="/WEB-INF/tags" prefix="a" %>
45
<c:url value='${href}' var="url" scope="page"/>
56
<a href="<c:out value='${url}'/>" class="${attr['class']}" ><jsp:doBody/></a>

springmvc/src/main/webapp/WEB-INF/tags/pagetemplate.tag

+11-11
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,19 @@
3636
<div id="navbar" class="collapse navbar-collapse">>
3737
<ul class="nav navbar-nav">
3838
<!-- <li><<my:a href="/shopping/show">Soccer manager</my:a></li> -->
39-
<li><my:a href="/teams/list/all">Teams</my:a></li>
40-
<li><my:a href="/players/list/all">Players</my:a></li>
41-
<li><my:a href="/leagues/list/all">Leagues</my:a></li>
42-
<li><my:a href="/matches/list/all">Matches</my:a></li>
43-
<li><my:a href="/managers/list/all">Managers</my:a></li>
39+
<li><my:a href="/team/list/">Teams</my:a></li>
40+
<li><my:a href="/player/list/">Players</my:a></li>
41+
<li><my:a href="/league/list/">Leagues</my:a></li>
42+
<li><my:a href="/matche/list/">Matches</my:a></li>
43+
<li><my:a href="/manager/list/">Managers</my:a></li>
4444
<li class="dropdown">
45-
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Administration><b class="caret"></b></a>
45+
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Administration<b class="caret"></b></a>
4646
<ul class="dropdown-menu">
47-
<li><my:a href="/teams/list/all">Teams</my:a></li>
48-
<li><my:a href="/players/list/all">Players</my:a></li>
49-
<li><my:a href="/leagues/list/all">Leagues</my:a></li>
50-
<li><my:a href="/matches/list/all">Matches</my:a></li>
51-
<li><my:a href="/managers/list/all">Managers</my:a></li>
47+
<li><my:a href="/team/list/">Teams</my:a></li>
48+
<li><my:a href="/player/list/">Players</my:a></li>
49+
<li><my:a href="/league/list/">Leagues</my:a></li>
50+
<li><my:a href="/match/list/">Matches</my:a></li>
51+
<li><my:a href="/manager/list/">Managers</my:a></li>
5252
</ul>
5353
</li>
5454
</ul>

0 commit comments

Comments
 (0)