diff --git a/.travis.yml b/.travis.yml
index 05d6fca..3958cc5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,7 @@
language: java
jdk:
- - openjdk10
+ - openjdk11
script: mvn package
diff --git a/README.md b/README.md
index 919bb72..152248b 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ Status](https://travis-ci.org/igor-baiborodine/jpetstore-6-vaadin-spring-boot.sv
#### This project is an exercise to port the original [JPetStore-6](https://github.com/mybatis/jpetstore-6) to Vaadin and Spring Boot.
### Branches
-* **master** - Java 10, Vaadin 8.5.1 (active)
+* **master** - Java 11, Vaadin 8.9.0 (active)
* **vaadin-v8-java-v8** - Java 8, Vaadin 8.3.0 (legacy)
* **vaadin-v8-with-v7-compatibility** - Vaadin 8.1.5 with Vaadin 7 compatibility (legacy)
* **vaadin-v7** - Vaadin 7.7.7 (legacy)
@@ -29,7 +29,7 @@ mvn clean package spring-boot:run
```
### Software and technologies used:
-* [Java 10](http://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html)
+* [Java 11](https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html)
* [Vaadin 8](https://vaadin.com/home) with [Viritin](https://vaadin.com/directory#!addon/viritin) add-on
* [Spring 5](http://projects.spring.io/spring-framework/#quick-start)
* [Spring Boot 2](http://projects.spring.io/spring-boot/)
diff --git a/pom.xml b/pom.xml
index 5ffc6da..0c66641 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,13 +5,13 @@
com.kiroule
jpetstore-6-vaadin-spring-boot
- 0.0.3-SNAPSHOT
+ 0.0.4-SNAPSHOT
jar
org.springframework.boot
spring-boot-starter-parent
- 2.0.4.RELEASE
+ 2.1.8.RELEASE
@@ -19,14 +19,15 @@
JPetStore Vaadin 8 with Spring Boot
- 8.5.1
- 3.0.0
+ 8.9.0
+
+ 3.2.1
${vaadin.version}
2.0.0.RELEASE
UTF-8
- 10
- 10
+ 11
+ 11
cdn
@@ -135,6 +136,12 @@
vaadin-spring-addon-eventbus
${org.vaadin.spring.version}
+
+ org.springframework.security.oauth
+ spring-security-oauth2
+ 2.3.4.RELEASE
+
+
org.hsqldb
hsqldb
diff --git a/src/main/java/com/kiroule/jpetstore/vaadinspring/config/ServiceConfig.java b/src/main/java/com/kiroule/jpetstore/vaadinspring/config/ServiceConfig.java
index b8a6897..61b1500 100644
--- a/src/main/java/com/kiroule/jpetstore/vaadinspring/config/ServiceConfig.java
+++ b/src/main/java/com/kiroule/jpetstore/vaadinspring/config/ServiceConfig.java
@@ -2,7 +2,7 @@
import com.kiroule.jpetstore.vaadinspring.service.AccountService;
import com.kiroule.jpetstore.vaadinspring.service.CatalogService;
-import com.kiroule.jpetstore.vaadinspring.service.LoginService;
+import com.kiroule.jpetstore.vaadinspring.service.SigninService;
import com.kiroule.jpetstore.vaadinspring.service.OrderService;
import org.springframework.context.annotation.Bean;
@@ -35,8 +35,8 @@ public OrderService orderService() {
}
@Bean
- public LoginService loginService() {
- return new LoginService();
+ public SigninService loginService() {
+ return new SigninService();
}
@Bean
diff --git a/src/main/java/com/kiroule/jpetstore/vaadinspring/service/LoginService.java b/src/main/java/com/kiroule/jpetstore/vaadinspring/service/SigninService.java
similarity index 96%
rename from src/main/java/com/kiroule/jpetstore/vaadinspring/service/LoginService.java
rename to src/main/java/com/kiroule/jpetstore/vaadinspring/service/SigninService.java
index 7ddd2d5..05b5e7d 100644
--- a/src/main/java/com/kiroule/jpetstore/vaadinspring/service/LoginService.java
+++ b/src/main/java/com/kiroule/jpetstore/vaadinspring/service/SigninService.java
@@ -11,7 +11,7 @@
* @author Igor Baiborodine
*/
@Component
-public class LoginService {
+public class SigninService {
@Autowired
private AccountService accountService;
diff --git a/src/main/java/com/kiroule/jpetstore/vaadinspring/ui/component/TopNavBar.java b/src/main/java/com/kiroule/jpetstore/vaadinspring/ui/component/TopNavBar.java
index 0dd7f45..2c787b6 100644
--- a/src/main/java/com/kiroule/jpetstore/vaadinspring/ui/component/TopNavBar.java
+++ b/src/main/java/com/kiroule/jpetstore/vaadinspring/ui/component/TopNavBar.java
@@ -1,7 +1,7 @@
package com.kiroule.jpetstore.vaadinspring.ui.component;
import com.kiroule.jpetstore.vaadinspring.domain.Account;
-import com.kiroule.jpetstore.vaadinspring.service.LoginService;
+import com.kiroule.jpetstore.vaadinspring.service.SigninService;
import com.kiroule.jpetstore.vaadinspring.ui.event.UILoginEvent;
import com.kiroule.jpetstore.vaadinspring.ui.event.UILogoutEvent;
import com.kiroule.jpetstore.vaadinspring.ui.event.UINavigationEvent;
@@ -49,17 +49,17 @@ public class TopNavBar extends CssLayout implements HasUIEventBus {
private final NavBarButtonUpdater navBarButtonUpdater;
private final SigninForm signinForm;
- private final LoginService loginService;
+ private final SigninService signinService;
private Button signinButton;
private Button signoutButton;
private Label userLabel;
@Autowired
- public TopNavBar(NavBarButtonUpdater navBarButtonUpdater, SigninForm signinForm, LoginService loginService) {
+ public TopNavBar(NavBarButtonUpdater navBarButtonUpdater, SigninForm signinForm, SigninService signinService) {
this.navBarButtonUpdater = navBarButtonUpdater;
this.signinForm = signinForm;
- this.loginService = loginService;
+ this.signinService = signinService;
}
@PostConstruct
@@ -89,7 +89,7 @@ public void handleAction(Object sender, Object target) {
final Window popup = signinForm.openInModalWidow();
signinForm.addLoginListener(loginEvent -> {
try {
- Account account = loginService.login(loginEvent.getLoginParameter("username"),
+ Account account = signinService.login(loginEvent.getLoginParameter("username"),
loginEvent.getLoginParameter("password"));
getUIEventBus().publish(this, new UILoginEvent(account));
UI.getCurrent().removeWindow(popup);
diff --git a/src/main/webapp/VAADIN/themes/jpetstoretheme/styles.css b/src/main/webapp/VAADIN/themes/jpetstoretheme/styles.css
index a81af74..535f17c 100644
--- a/src/main/webapp/VAADIN/themes/jpetstoretheme/styles.css
+++ b/src/main/webapp/VAADIN/themes/jpetstoretheme/styles.css
@@ -1077,7 +1077,7 @@
*/
.v-vaadin-version:after {
- content: "8.5.1";
+ content: "8.9.0";
}
.v-widget {
@@ -4376,6 +4376,10 @@ div.v-layout.v-horizontal.v-widget {
left: 0;
}
+.jpetstoretheme .v-grid-body .v-grid-header > .v-grid-row {
+ position: relative;
+}
+
.jpetstoretheme .v-grid-row {
display: block;
}
@@ -4551,6 +4555,8 @@ div.v-layout.v-horizontal.v-widget {
-webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1);
box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1);
border-right: 1px solid #d4d4d4;
+ position: relative;
+ z-index: 11;
}
.jpetstoretheme .v-grid-cell.frozen + th, .jpetstoretheme .v-grid-cell.frozen + td {
@@ -6271,9 +6277,14 @@ div.v-layout.v-horizontal.v-widget {
.jpetstoretheme .v-datefield-popup td.v-datefield-calendarpanel-month {
width: 148px;
+ cursor: default;
color: #197de1;
}
+.jpetstoretheme .v-datefield-popup td.v-datefield-calendarpanel-month.header-month-year {
+ cursor: pointer;
+}
+
.jpetstoretheme .v-datefield-popup .v-datefield-calendarpanel-year td.v-datefield-calendarpanel-month {
width: 74px;
}
@@ -6456,9 +6467,14 @@ div.v-layout.v-horizontal.v-widget {
.jpetstoretheme td.v-datefield-calendarpanel-month {
width: 148px;
+ cursor: default;
color: #197de1;
}
+.jpetstoretheme td.v-datefield-calendarpanel-month.header-month-year {
+ cursor: pointer;
+}
+
.jpetstoretheme .v-datefield-calendarpanel-year td.v-datefield-calendarpanel-month {
width: 74px;
}
@@ -7111,9 +7127,14 @@ div.v-layout.v-horizontal.v-widget {
.jpetstoretheme td.v-inline-datefield-calendarpanel-month {
width: 148px;
+ cursor: default;
color: #197de1;
}
+.jpetstoretheme td.v-inline-datefield-calendarpanel-month.header-month-year {
+ cursor: pointer;
+}
+
.jpetstoretheme .v-inline-datefield-calendarpanel-year td.v-inline-datefield-calendarpanel-month {
width: 74px;
}
@@ -9022,6 +9043,10 @@ div.v-layout.v-horizontal.v-widget {
left: 0;
}
+.jpetstoretheme .v-tree8-body .v-tree8-header > .v-tree8-row {
+ position: relative;
+}
+
.jpetstoretheme .v-tree8-row {
display: block;
}
@@ -9197,6 +9222,8 @@ div.v-layout.v-horizontal.v-widget {
-webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1);
box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1);
border-right: 1px solid #d4d4d4;
+ position: relative;
+ z-index: 11;
}
.jpetstoretheme .v-tree8-cell.frozen + th, .jpetstoretheme .v-tree8-cell.frozen + td {
@@ -9913,6 +9940,70 @@ div.v-layout.v-horizontal.v-widget {
padding-left: 15em;
}
+.jpetstoretheme .v-tree8-node.depth-16 {
+ padding-left: 16em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-17 {
+ padding-left: 17em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-18 {
+ padding-left: 18em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-19 {
+ padding-left: 19em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-20 {
+ padding-left: 20em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-21 {
+ padding-left: 21em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-22 {
+ padding-left: 22em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-23 {
+ padding-left: 23em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-24 {
+ padding-left: 24em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-25 {
+ padding-left: 25em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-26 {
+ padding-left: 26em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-27 {
+ padding-left: 27em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-28 {
+ padding-left: 28em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-29 {
+ padding-left: 29em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-30 {
+ padding-left: 30em;
+}
+
+.jpetstoretheme .v-tree8-node.depth-31 {
+ padding-left: 31em;
+}
+
.jpetstoretheme .v-tree8-cell-content {
display: inline-block;
vertical-align: middle;
@@ -10098,6 +10189,10 @@ div.v-layout.v-horizontal.v-widget {
left: 0;
}
+.jpetstoretheme .v-treegrid-body .v-treegrid-header > .v-treegrid-row {
+ position: relative;
+}
+
.jpetstoretheme .v-treegrid-row {
display: block;
}
@@ -10273,6 +10368,8 @@ div.v-layout.v-horizontal.v-widget {
-webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1);
box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1);
border-right: 1px solid #d4d4d4;
+ position: relative;
+ z-index: 11;
}
.jpetstoretheme .v-treegrid-cell.frozen + th, .jpetstoretheme .v-treegrid-cell.frozen + td {
@@ -10989,6 +11086,70 @@ div.v-layout.v-horizontal.v-widget {
padding-left: 15em;
}
+.jpetstoretheme .v-treegrid-node.depth-16 {
+ padding-left: 16em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-17 {
+ padding-left: 17em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-18 {
+ padding-left: 18em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-19 {
+ padding-left: 19em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-20 {
+ padding-left: 20em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-21 {
+ padding-left: 21em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-22 {
+ padding-left: 22em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-23 {
+ padding-left: 23em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-24 {
+ padding-left: 24em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-25 {
+ padding-left: 25em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-26 {
+ padding-left: 26em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-27 {
+ padding-left: 27em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-28 {
+ padding-left: 28em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-29 {
+ padding-left: 29em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-30 {
+ padding-left: 30em;
+}
+
+.jpetstoretheme .v-treegrid-node.depth-31 {
+ padding-left: 31em;
+}
+
.jpetstoretheme .v-treegrid-cell-content {
display: inline-block;
vertical-align: middle;
@@ -12474,6 +12635,14 @@ div.v-layout.v-horizontal.v-widget {
text-align: right;
}
+.jpetstoretheme .v-tabsheet-right-aligned-tabs .v-tabsheet-spacertd {
+ display: inline-block !important;
+}
+
+.jpetstoretheme .v-tabsheet-right-aligned-tabs .v-tabsheet-scroller {
+ padding-left: 9px;
+}
+
.jpetstoretheme .v-tabsheet-padded-tabbar > .v-tabsheet-tabcontainer .v-tabsheet-tabs {
padding: 0 9px;
}
diff --git a/src/test/java/com/kiroule/jpetstore/vaadinspring/Jpetstore6ApplicationIntegrationTest.java b/src/test/java/com/kiroule/jpetstore/vaadinspring/Jpetstore6ApplicationIntegrationTest.java
index b869881..9cc80ef 100644
--- a/src/test/java/com/kiroule/jpetstore/vaadinspring/Jpetstore6ApplicationIntegrationTest.java
+++ b/src/test/java/com/kiroule/jpetstore/vaadinspring/Jpetstore6ApplicationIntegrationTest.java
@@ -2,7 +2,7 @@
import com.kiroule.jpetstore.vaadinspring.persistence.ProductMapper;
import com.kiroule.jpetstore.vaadinspring.service.CatalogService;
-import com.kiroule.jpetstore.vaadinspring.service.LoginService;
+import com.kiroule.jpetstore.vaadinspring.service.SigninService;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -23,12 +23,12 @@ public class Jpetstore6ApplicationIntegrationTest {
@Autowired
private CatalogService catalogService;
@Autowired
- private LoginService loginService;
+ private SigninService signinService;
@Test
public void loadContext_shouldLoadApplicationContext() {
- assertThat(loginService, notNullValue());
+ assertThat(signinService, notNullValue());
assertThat(productMapper, notNullValue());
assertThat(catalogService, notNullValue());
assertThat(getField(catalogService, "productMapper"), notNullValue());