Skip to content

Commit e9e21da

Browse files
authored
this is just a sceleton project
this is just a sceleton project configured to be a template for Java Rush Test Task; it connects to mysql database (name: test) and can make new entry inthere (simple test entry is entity-object MessageEntity)
1 parent da0a8e0 commit e9e21da

40 files changed

+1378
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
6+
<groupId>com.springvalidation</groupId>
7+
<artifactId>springformvalidation</artifactId>
8+
<version>0.0.1-SNAPSHOT</version>
9+
<packaging>jar</packaging>
10+
11+
<name>springformvalidation</name>
12+
<description>Demo project for Spring Boot</description>
13+
14+
<parent>
15+
<groupId>org.springframework.boot</groupId>
16+
<artifactId>spring-boot-starter-parent</artifactId>
17+
<version>1.5.9.RELEASE</version>
18+
<relativePath/> <!-- lookup parent from repository -->
19+
</parent>
20+
21+
<properties>
22+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
23+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
24+
<java.version>1.8</java.version>
25+
</properties>
26+
27+
<dependencies>
28+
<dependency>
29+
<groupId>org.springframework.boot</groupId>
30+
<artifactId>spring-boot-starter-thymeleaf</artifactId>
31+
</dependency>
32+
<dependency>
33+
<groupId>org.springframework.boot</groupId>
34+
<artifactId>spring-boot-starter-validation</artifactId>
35+
</dependency>
36+
<dependency>
37+
<groupId>org.springframework.boot</groupId>
38+
<artifactId>spring-boot-starter-web</artifactId>
39+
</dependency>
40+
41+
<dependency>
42+
<groupId>org.springframework.boot</groupId>
43+
<artifactId>spring-boot-starter-test</artifactId>
44+
<scope>test</scope>
45+
</dependency>
46+
47+
<dependency>
48+
<groupId>org.springframework.boot</groupId>
49+
<artifactId>spring-boot-starter-data-jpa</artifactId>
50+
<exclusions>
51+
<exclusion>
52+
<groupId>org.apache.tomcat</groupId>
53+
<artifactId>tomcat-jdbc</artifactId>
54+
</exclusion>
55+
</exclusions>
56+
</dependency>
57+
<dependency>
58+
<groupId>commons-dbcp</groupId>
59+
<artifactId>commons-dbcp</artifactId>
60+
</dependency>
61+
<dependency>
62+
<groupId>mysql</groupId>
63+
<artifactId>mysql-connector-java</artifactId>
64+
</dependency>
65+
66+
<dependency>
67+
<groupId>javax</groupId>
68+
<artifactId>javaee-api</artifactId>
69+
<version>7.0</version>
70+
<scope>provided</scope>
71+
</dependency>
72+
73+
<dependency>
74+
<groupId>org.apache.commons</groupId>
75+
<artifactId>commons-lang3</artifactId>
76+
<version>3.6</version>
77+
</dependency>
78+
79+
<dependency>
80+
<groupId>com.sun.faces</groupId>
81+
<artifactId>jsf-api</artifactId>
82+
<version>2.2.15</version>
83+
</dependency>
84+
</dependencies>
85+
86+
<build>
87+
<finalName>library</finalName>
88+
<plugins>
89+
<plugin>
90+
<groupId>org.springframework.boot</groupId>
91+
<artifactId>spring-boot-maven-plugin</artifactId>
92+
</plugin>
93+
</plugins>
94+
</build>
95+
96+
97+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
3+
<component name="FacetManager">
4+
<facet type="Spring" name="Spring">
5+
<configuration />
6+
</facet>
7+
<facet type="web" name="Web">
8+
<configuration>
9+
<webroots />
10+
<sourceRoots>
11+
<root url="file://$MODULE_DIR$/src/main/java" />
12+
<root url="file://$MODULE_DIR$/src/main/resources" />
13+
</sourceRoots>
14+
</configuration>
15+
</facet>
16+
<facet type="jpa" name="JPA">
17+
<configuration>
18+
<setting name="validation-enabled" value="true" />
19+
<setting name="provider-name" value="" />
20+
<datasource-mapping>
21+
<factory-entry name="PU" />
22+
<factory-entry name="entityManagerFactory" />
23+
</datasource-mapping>
24+
<deploymentDescriptor name="persistence.xml" url="file://$MODULE_DIR$/src/main/resources/META-INF/persistence.xml" />
25+
</configuration>
26+
</facet>
27+
</component>
28+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
29+
<output url="file://$MODULE_DIR$/target/classes" />
30+
<output-test url="file://$MODULE_DIR$/target/test-classes" />
31+
<content url="file://$MODULE_DIR$">
32+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
33+
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
34+
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
35+
<excludeFolder url="file://$MODULE_DIR$/target" />
36+
</content>
37+
<orderEntry type="inheritedJdk" />
38+
<orderEntry type="sourceFolder" forTests="false" />
39+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-thymeleaf:1.5.9.RELEASE" level="project" />
40+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.5.9.RELEASE" level="project" />
41+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.5.9.RELEASE" level="project" />
42+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.5.9.RELEASE" level="project" />
43+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:1.5.9.RELEASE" level="project" />
44+
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.11" level="project" />
45+
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.11" level="project" />
46+
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
47+
<orderEntry type="library" name="Maven: org.slf4j:log4j-over-slf4j:1.7.25" level="project" />
48+
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
49+
<orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf-spring4:2.1.6.RELEASE" level="project" />
50+
<orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf:2.1.6.RELEASE" level="project" />
51+
<orderEntry type="library" name="Maven: ognl:ognl:3.0.8" level="project" />
52+
<orderEntry type="library" name="Maven: org.unbescape:unbescape:1.1.0.RELEASE" level="project" />
53+
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
54+
<orderEntry type="library" name="Maven: nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:1.4.0" level="project" />
55+
<orderEntry type="library" name="Maven: org.codehaus.groovy:groovy:2.4.13" level="project" />
56+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:1.5.9.RELEASE" level="project" />
57+
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.23" level="project" />
58+
<orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.3.6.Final" level="project" />
59+
<orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
60+
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.1.Final" level="project" />
61+
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
62+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.5.9.RELEASE" level="project" />
63+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.5.9.RELEASE" level="project" />
64+
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.23" level="project" />
65+
<orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-annotations-api:8.5.23" level="project" />
66+
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.23" level="project" />
67+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.10" level="project" />
68+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.0" level="project" />
69+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.10" level="project" />
70+
<orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.13.RELEASE" level="project" />
71+
<orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.13.RELEASE" level="project" />
72+
<orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.13.RELEASE" level="project" />
73+
<orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.13.RELEASE" level="project" />
74+
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.13.RELEASE" level="project" />
75+
<orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.13.RELEASE" level="project" />
76+
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.5.9.RELEASE" level="project" />
77+
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.5.9.RELEASE" level="project" />
78+
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.5.9.RELEASE" level="project" />
79+
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
80+
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
81+
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
82+
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.3" level="project" />
83+
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
84+
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.6.0" level="project" />
85+
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:1.10.19" level="project" />
86+
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
87+
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
88+
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
89+
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.4.0" level="project" />
90+
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
91+
<orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.13.RELEASE" level="project" />
92+
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.13.RELEASE" level="project" />
93+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.5.9.RELEASE" level="project" />
94+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.5.9.RELEASE" level="project" />
95+
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.13" level="project" />
96+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.5.9.RELEASE" level="project" />
97+
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.13.RELEASE" level="project" />
98+
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.0.12.Final" level="project" />
99+
<orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
100+
<orderEntry type="library" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
101+
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
102+
<orderEntry type="library" name="Maven: org.jboss:jandex:2.0.0.Final" level="project" />
103+
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
104+
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
105+
<orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:5.0.12.Final" level="project" />
106+
<orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
107+
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.11.9.RELEASE" level="project" />
108+
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.13.9.RELEASE" level="project" />
109+
<orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.13.RELEASE" level="project" />
110+
<orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.13.RELEASE" level="project" />
111+
<orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.25" level="project" />
112+
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.13.RELEASE" level="project" />
113+
<orderEntry type="library" name="Maven: commons-dbcp:commons-dbcp:1.4" level="project" />
114+
<orderEntry type="library" name="Maven: commons-pool:commons-pool:1.6" level="project" />
115+
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.44" level="project" />
116+
<orderEntry type="library" scope="PROVIDED" name="Maven: javax:javaee-api:7.0" level="project" />
117+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sun.mail:javax.mail:1.5.6" level="project" />
118+
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.activation:activation:1.1" level="project" />
119+
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.6" level="project" />
120+
<orderEntry type="library" name="Maven: com.sun.faces:jsf-api:2.2.15" level="project" />
121+
</component>
122+
</module>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.springvalidation;
2+
3+
import com.springvalidation.util.DBManager;
4+
import org.springframework.context.annotation.Bean;
5+
import org.springframework.context.annotation.Configuration;
6+
7+
/**
8+
* @author Jesus Lord Almighty
9+
* at 19.01.18
10+
*/
11+
12+
@Configuration
13+
public class AppConfig {
14+
15+
@Bean
16+
public DBManager dbManager() {
17+
18+
return new DBManager();
19+
}
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.springvalidation;
2+
3+
import com.springvalidation.model.entity.MessageEntity;
4+
import com.springvalidation.util.DBManager;
5+
6+
import javax.ejb.EJB;
7+
import javax.faces.bean.SessionScoped;
8+
import javax.inject.Named;
9+
import java.io.Serializable;
10+
import java.util.List;
11+
12+
/**
13+
* @author Jesus Lord Almighty
14+
* at 19.01.18
15+
*/
16+
17+
@Named
18+
@SessionScoped
19+
public class CDI implements Serializable {
20+
21+
@EJB
22+
private DBManager dbManager;
23+
24+
private String data;
25+
private boolean createSuccess;
26+
27+
public void createMessage(){
28+
createSuccess = dbManager.createMessage(data);
29+
}
30+
31+
public List<MessageEntity> getAllMessages(){
32+
return dbManager.getAllMessages();
33+
}
34+
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.springvalidation;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
import org.springframework.context.annotation.ComponentScan;
6+
7+
@SpringBootApplication
8+
@ComponentScan
9+
public class SpringformvalidationApplication {
10+
11+
public static void main(String[] args) {
12+
SpringApplication.run(SpringformvalidationApplication.class, args);
13+
}
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
package com.springvalidation.controller;
2+
3+
import com.springvalidation.model.FormValidation;
4+
import com.springvalidation.model.Index;
5+
import com.springvalidation.model.Person;
6+
import com.springvalidation.util.DBManager;
7+
import org.springframework.stereotype.Controller;
8+
import org.springframework.transaction.annotation.Transactional;
9+
import org.springframework.ui.Model;
10+
import org.springframework.validation.BindingResult;
11+
import org.springframework.web.bind.annotation.RequestMapping;
12+
import org.springframework.web.bind.annotation.RequestMethod;
13+
14+
import javax.ejb.EJB;
15+
import javax.validation.Valid;
16+
import java.util.ArrayList;
17+
import java.util.List;
18+
19+
/**
20+
* Created by Jesus
21+
*/
22+
@Controller
23+
@RequestMapping("/")
24+
public class FormController
25+
{
26+
27+
@EJB
28+
private DBManager dbManager;
29+
30+
@RequestMapping(value = "/form")
31+
public String form(Model model)
32+
{
33+
model.addAttribute("formValidation", new FormValidation());
34+
return "formvalidation";
35+
}
36+
37+
@RequestMapping(value = "/")
38+
public String index(Model model)
39+
{
40+
Index indx = new Index();
41+
List<Person> persons = new ArrayList<>(100);
42+
for (int i = 0; i < 77; i++)
43+
{
44+
Person person = new Person();
45+
person.setId(String.valueOf(i));
46+
person.setFirstName("John" + i);
47+
person.setLastName("the Baptist" + i);
48+
persons.add(person);
49+
}
50+
model.addAttribute("persons", persons);
51+
model.addAttribute("index", indx);
52+
return "index";
53+
}
54+
55+
@RequestMapping(value = {"/table"}, method = RequestMethod.GET)
56+
public String table(Model model)
57+
{
58+
List<Person> persons = new ArrayList<>(100);
59+
for (int i = 0; i < 100; i++)
60+
{
61+
Person person = new Person();
62+
person.setId(String.valueOf(i));
63+
person.setFirstName("John" + i);
64+
person.setLastName("Doe" + i);
65+
persons.add(person);
66+
}
67+
model.addAttribute("persons", persons);
68+
return "table";
69+
}
70+
71+
@Transactional
72+
@RequestMapping(value = "/", method = RequestMethod.POST)
73+
public String indexvalidation(@Valid Index index, BindingResult bindingResult)
74+
{
75+
if(bindingResult.hasErrors())
76+
{
77+
return "index";
78+
}
79+
dbManager.createMessage(index.getData());
80+
return "redirect:/success";
81+
}
82+
83+
84+
@RequestMapping(value = "/success")
85+
public String success()
86+
{
87+
return "success";
88+
}
89+
90+
91+
@RequestMapping(value = "/form", method = RequestMethod.POST)
92+
public String formvalidation(@Valid FormValidation formValidation, BindingResult bindingResult)
93+
{
94+
95+
if(bindingResult.hasErrors())
96+
{
97+
return "formvalidation";
98+
}
99+
100+
101+
return "redirect:/success";
102+
103+
}
104+
105+
}

0 commit comments

Comments
 (0)