From 59673e6b0a300f418f08ce655e773cf4bbe4d088 Mon Sep 17 00:00:00 2001 From: "javawebinar@yandex.ru" Date: Tue, 19 May 2015 23:14:34 +0300 Subject: [PATCH 1/8] Update demo url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4184fef..a094f30 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,4 @@ Проект к вебинару http://javawebinar.ru/topjava/ -Демо разрабатываемого приложения: http://caloriesmng.herokuapp.com/ \ No newline at end of file +Демо разрабатываемого приложения: http://topjava.herokuapp.com/ \ No newline at end of file From cf4d98880532752c5d8130429761d3ef00fc038c Mon Sep 17 00:00:00 2001 From: "javawebinar@yandex.ru" Date: Wed, 20 May 2015 01:24:29 +0300 Subject: [PATCH 2/8] Add email duplicate check Correct read.me --- README.md | 4 +--- .../topjava/web/RootController.java | 18 +++++++++++------- src/main/webapp/WEB-INF/tags/inputField.tag | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index a094f30..05696b4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # topjava02 -Старт вебинара: 27.02 в 20.00 GMT+3 - -Проект к вебинару http://javawebinar.ru/topjava/ +Прграмма курса: http://javawebinar.ru/topjava/ Демо разрабатываемого приложения: http://topjava.herokuapp.com/ \ No newline at end of file diff --git a/src/main/java/ru/javawebinar/topjava/web/RootController.java b/src/main/java/ru/javawebinar/topjava/web/RootController.java index 013f5b4..6f02010 100644 --- a/src/main/java/ru/javawebinar/topjava/web/RootController.java +++ b/src/main/java/ru/javawebinar/topjava/web/RootController.java @@ -1,6 +1,7 @@ package ru.javawebinar.topjava.web; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataIntegrityViolationException; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -81,13 +82,16 @@ public String register(ModelMap model) { @RequestMapping(value = "/register", method = RequestMethod.POST) public String saveRegister(@Valid UserTo userTo, BindingResult result, SessionStatus status, ModelMap model) { - if (result.hasErrors()) { - model.addAttribute("register", true); - return "profile"; - } else { - status.setComplete(); - userService.save(UserUtil.createFromTo(userTo)); - return "redirect:login?message=app.registered"; + if (!result.hasErrors()) { + try { + userService.save(UserUtil.createFromTo(userTo)); + status.setComplete(); + return "redirect:login?message=app.registered"; + } catch (DataIntegrityViolationException ex) { + result.rejectValue("email", "error.user", "User with this email already present in application."); + } } + model.addAttribute("register", true); + return "profile"; } } diff --git a/src/main/webapp/WEB-INF/tags/inputField.tag b/src/main/webapp/WEB-INF/tags/inputField.tag index 57010c1..d952a79 100644 --- a/src/main/webapp/WEB-INF/tags/inputField.tag +++ b/src/main/webapp/WEB-INF/tags/inputField.tag @@ -11,7 +11,7 @@
-
+
From 98715353eddf4fe988512266c17f483fd450b52c Mon Sep 17 00:00:00 2001 From: "javawebinar@yandex.ru" Date: Fri, 29 May 2015 01:16:34 +0300 Subject: [PATCH 3/8] Small correction --- hr.bat | 2 +- pom.xml | 2 +- src/main/resources/db/postgres.properties | 4 ---- .../javawebinar/topjava/web/user/AdminRestControllerTest.java | 3 ++- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/hr.bat b/hr.bat index 89b82a0..3c81552 100644 --- a/hr.bat +++ b/hr.bat @@ -1,2 +1,2 @@ -call mvn -P heroku,postgres -DskipTests=true package +call mvn -B -s settings.xml -DskipTests=true clean install call java -Dspring.profiles.active="datajpa,heroku" -DDATABASE_URL="postgres://user:user@localhost:5432/topjava02" -jar target/dependency/webapp-runner.jar target/*.war diff --git a/pom.xml b/pom.xml index 86a4535..c3f36ed 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 1.0-SNAPSHOT Calories Management - http://caloriesmng.herokuapp.com/ + http://topjava.herokuapp.com/ 1.8 diff --git a/src/main/resources/db/postgres.properties b/src/main/resources/db/postgres.properties index a7f045f..2b5baf8 100644 --- a/src/main/resources/db/postgres.properties +++ b/src/main/resources/db/postgres.properties @@ -1,7 +1,3 @@ -#database.url=jdbc:postgresql://ec2-54-228-184-236.eu-west-1.compute.amazonaws.com:5432/dfgpjfq69ca298?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory -#database.username=banydqiclzovdb -#database.password=h62cZV7oFaJGwaCkqtGuG93nfl - database.url=jdbc:postgresql://localhost:5432/topjava02 database.username=user database.password=user diff --git a/src/test/java/ru/javawebinar/topjava/web/user/AdminRestControllerTest.java b/src/test/java/ru/javawebinar/topjava/web/user/AdminRestControllerTest.java index 579fc6b..55941c1 100644 --- a/src/test/java/ru/javawebinar/topjava/web/user/AdminRestControllerTest.java +++ b/src/test/java/ru/javawebinar/topjava/web/user/AdminRestControllerTest.java @@ -110,7 +110,8 @@ public void testCreate() throws Exception { @Test public void testGetAll() throws Exception { - TestUtil.print(mockMvc.perform(get(REST_URL).contentType(MediaType.APPLICATION_JSON) + TestUtil.print(mockMvc.perform(get(REST_URL) + .contentType(MediaType.APPLICATION_JSON) .with(userHttpBasic(ADMIN))) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)) From 305e38e0a76ef5410fb88a8a193543495718f133 Mon Sep 17 00:00:00 2001 From: "javawebinar@yandex.ru" Date: Sat, 6 Jun 2015 20:27:57 +0300 Subject: [PATCH 4/8] Add Serializable --- .../java/ru/javawebinar/topjava/model/BaseEntity.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/javawebinar/topjava/model/BaseEntity.java b/src/main/java/ru/javawebinar/topjava/model/BaseEntity.java index 4022226..5384cbb 100644 --- a/src/main/java/ru/javawebinar/topjava/model/BaseEntity.java +++ b/src/main/java/ru/javawebinar/topjava/model/BaseEntity.java @@ -2,7 +2,14 @@ import ru.javawebinar.topjava.LoggerWrapper; -import javax.persistence.*; +import javax.persistence.Access; +import javax.persistence.AccessType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; +import javax.persistence.SequenceGenerator; +import java.io.Serializable; /** * User: gkislin @@ -11,7 +18,7 @@ @MappedSuperclass @Access(AccessType.FIELD) //@JsonAutoDetect(fieldVisibility = ANY, getterVisibility = NONE, isGetterVisibility = NONE, setterVisibility = NONE) -public class BaseEntity { +public class BaseEntity implements Serializable{ protected static final LoggerWrapper LOG = LoggerWrapper.get(BaseEntity.class); public static final int START_SEQ = 100000; From a37d765fc776cee4fbb77aa8c2c0bc007c3ad30e Mon Sep 17 00:00:00 2001 From: "javawebinar@yandex.ru" Date: Tue, 16 Jun 2015 22:55:33 +0300 Subject: [PATCH 5/8] Add validation query --- src/main/resources/spring/spring-db.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/spring/spring-db.xml b/src/main/resources/spring/spring-db.xml index c029db2..c322f15 100644 --- a/src/main/resources/spring/spring-db.xml +++ b/src/main/resources/spring/spring-db.xml @@ -58,6 +58,7 @@ + From 5f124faadac0ea89b5983c6f5714d45e6c8e1169 Mon Sep 17 00:00:00 2001 From: "javawebinar@yandex.ru" Date: Wed, 17 Jun 2015 00:10:52 +0300 Subject: [PATCH 6/8] Change pool settings --- src/main/resources/spring/spring-db.xml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/resources/spring/spring-db.xml b/src/main/resources/spring/spring-db.xml index c322f15..b5cf023 100644 --- a/src/main/resources/spring/spring-db.xml +++ b/src/main/resources/spring/spring-db.xml @@ -53,13 +53,21 @@ - - - - - - + class="org.apache.tomcat.jdbc.pool.DataSource" + p:url="#{ 'jdbc:postgresql://' + @dbUrl.getHost() + @dbUrl.getPath() }" + p:username="#{ @dbUrl.getUserInfo().split(':')[0] }" + p:password="#{ @dbUrl.getUserInfo().split(':')[1] }" + p:driverClassName="org.postgresql.Driver" + p:validationQuery="SELECT 1 FROM users" + p:maxActive="5" + p:minIdle="1" + p:maxWait="20000" + p:initialSize="2" + p:maxIdle="5" + p:testOnBorrow="true" + p:removeAbandoned="true" + p:testOnConnect="true" + p:testWhileIdle="true"/> From 84e20851c8645992d42cc5ce1b073b09d93dd394 Mon Sep 17 00:00:00 2001 From: Grigory Kislin Date: Mon, 27 Jul 2015 00:59:04 +0300 Subject: [PATCH 7/8] postgres credentials change --- src/main/resources/db/postgres.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/db/postgres.properties b/src/main/resources/db/postgres.properties index 2b5baf8..30a2027 100644 --- a/src/main/resources/db/postgres.properties +++ b/src/main/resources/db/postgres.properties @@ -1,6 +1,6 @@ -database.url=jdbc:postgresql://localhost:5432/topjava02 +database.url=jdbc:postgresql://localhost:5432/topjava database.username=user -database.password=user +database.password=password database.init=true jdbc.initLocation=initDB.sql From 2932f4fa5a92cb8d1049a15e9f102e0673aa71ae Mon Sep 17 00:00:00 2001 From: Grigory Kislin Date: Fri, 7 Aug 2015 01:37:31 +0300 Subject: [PATCH 8/8] Change url and small corrections --- conf/messages/app.properties | 2 +- conf/messages/app_ru.properties | 2 +- src/main/resources/db/populateDB.sql | 10 +++++----- src/main/webapp/resources/js/customDatatable.js | 3 ++- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/conf/messages/app.properties b/conf/messages/app.properties index 2001086..15b5456 100644 --- a/conf/messages/app.properties +++ b/conf/messages/app.properties @@ -1,5 +1,5 @@ app.title=Calories management -app.footer=Webinar Maven/ Spring/ Security/ JPA(Hibernate)/ Jackson/jQuery application +app.footer=Java Online Project Maven/ Spring/ Security/ JPA(Hibernate)/ Jackson/jQuery users.title=User list meals.title=Meals list app.registered=You are registered. Please Sign in. diff --git a/conf/messages/app_ru.properties b/conf/messages/app_ru.properties index eb0aaf2..f0d7427 100644 --- a/conf/messages/app_ru.properties +++ b/conf/messages/app_ru.properties @@ -1,5 +1,5 @@ app.title=Подсчет калорий -app.footer=Приложение по вебинару Maven/ Spring/ Security/ JPA(Hibernate)/ Jackson/jQuery +app.footer=Онлайн Java проект Maven/ Spring/ Security/ JPA(Hibernate)/ Jackson/jQuery users.title=Список Пользователей meals.title=Список еды app.registered=Вы загеристрированы. Введите ваш логин/пароль. \ No newline at end of file diff --git a/src/main/resources/db/populateDB.sql b/src/main/resources/db/populateDB.sql index 9d4978a..34e5e37 100644 --- a/src/main/resources/db/populateDB.sql +++ b/src/main/resources/db/populateDB.sql @@ -12,8 +12,8 @@ VALUES ('Admin', 'admin@gmail.com', '$2a$10$WejOLxVuXRpOgr4IlzQJ.eT4UcukNqHlAiOV INSERT INTO user_roles (role, user_id) VALUES ('ROLE_USER', 100000); INSERT INTO user_roles (role, user_id) VALUES ('ROLE_ADMIN', 100001); -INSERT INTO meals (datetime, description, calories, user_id) VALUES ('2015-01-06 09:00:00', 'завтрак', 500, 100000); -INSERT INTO meals (datetime, description, calories, user_id) VALUES ('2015-01-06 13:00:00', 'обед', 1000, 100000); -INSERT INTO meals (datetime, description, calories, user_id) VALUES ('2015-01-07 00:00:00', 'ужин', 600, 100000); -INSERT INTO meals (datetime, description, calories, user_id) VALUES ('2015-01-07 13:00:00', 'еще обед', 1300, 100000); -INSERT INTO meals (datetime, description, calories, user_id) VALUES ('2015-01-06 14:00:00', 'еда админа', 2000, 100001); +INSERT INTO meals (datetime, description, calories, user_id) VALUES ('2015-01-06 09:00:00', 'breakfast', 500, 100000); +INSERT INTO meals (datetime, description, calories, user_id) VALUES ('2015-01-06 13:00:00', 'dinner', 1000, 100000); +INSERT INTO meals (datetime, description, calories, user_id) VALUES ('2015-01-07 00:00:00', 'supper', 600, 100000); +INSERT INTO meals (datetime, description, calories, user_id) VALUES ('2015-01-07 13:00:00', 'dinner', 1300, 100000); +INSERT INTO meals (datetime, description, calories, user_id) VALUES ('2015-01-06 14:00:00', 'admin_meal', 2000, 100001); diff --git a/src/main/webapp/resources/js/customDatatable.js b/src/main/webapp/resources/js/customDatatable.js index 2504d03..26126ba 100644 --- a/src/main/webapp/resources/js/customDatatable.js +++ b/src/main/webapp/resources/js/customDatatable.js @@ -1,6 +1,6 @@ var form; -function makeEditable(ajaxUrl) { +function makeEditable() { form = $('#detailsForm'); $('#add').click(function () { @@ -33,6 +33,7 @@ function makeEditable(ajaxUrl) { $(document).ajaxSend(function(e, xhr, options) { xhr.setRequestHeader(header, token); }); + init(); }