diff --git a/web/pom.xml b/web/pom.xml
index 890628f..c86f03e 100644
--- a/web/pom.xml
+++ b/web/pom.xml
@@ -41,20 +41,20 @@
com.vaadin
- vaadin-server
- 7.7.13
+ vaadin-compatibility-server
+ 8.9.4
com.vaadin
vaadin-themes
- 7.7.13
+ 8.9.4
com.vaadin
- vaadin-client-compiled
- 7.7.13
+ vaadin-compatibility-client-compiled
+ 8.9.4
@@ -72,7 +72,7 @@
org.slf4j
slf4j-log4j12
- 1.7.25
+ 1.7.30
@@ -89,7 +89,7 @@
maven-compiler-plugin
- 3.7.0
+ 3.8.1
1.8
diff --git a/web/src/main/java/de/hsadmin/web/DomainOptionsEditor.java b/web/src/main/java/de/hsadmin/web/DomainOptionsEditor.java
index 8328a2b..7e0375b 100644
--- a/web/src/main/java/de/hsadmin/web/DomainOptionsEditor.java
+++ b/web/src/main/java/de/hsadmin/web/DomainOptionsEditor.java
@@ -6,10 +6,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import com.vaadin.data.Validator;
-import com.vaadin.ui.CheckBox;
+import com.vaadin.v7.data.Validator;
+import com.vaadin.v7.ui.CheckBox;
import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.VerticalLayout;
+import com.vaadin.v7.ui.VerticalLayout;
import de.hsadmin.rpc.HSAdminSession;
import de.hsadmin.rpc.PropertyInfo;
diff --git a/web/src/main/java/de/hsadmin/web/EMailTargetEditor.java b/web/src/main/java/de/hsadmin/web/EMailTargetEditor.java
index 385dda1..54d46b1 100644
--- a/web/src/main/java/de/hsadmin/web/EMailTargetEditor.java
+++ b/web/src/main/java/de/hsadmin/web/EMailTargetEditor.java
@@ -7,19 +7,19 @@ import java.util.Map;
import org.apache.xmlrpc.XmlRpcException;
-import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.data.Validator;
-import com.vaadin.data.Validator.InvalidValueException;
+import com.vaadin.v7.data.Property.ValueChangeEvent;
+import com.vaadin.v7.data.Property.ValueChangeListener;
+import com.vaadin.v7.data.Validator;
+import com.vaadin.v7.data.Validator.InvalidValueException;
import com.vaadin.ui.AbstractComponent;
import com.vaadin.ui.AbstractOrderedLayout;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Component;
import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.HorizontalLayout;
-import com.vaadin.ui.NativeSelect;
-import com.vaadin.ui.TextField;
-import com.vaadin.ui.VerticalLayout;
+import com.vaadin.v7.ui.HorizontalLayout;
+import com.vaadin.v7.ui.NativeSelect;
+import com.vaadin.v7.ui.TextField;
+import com.vaadin.v7.ui.VerticalLayout;
import de.hsadmin.model.IRemote;
import de.hsadmin.model.TicketService;
diff --git a/web/src/main/java/de/hsadmin/web/EntryPoint.java b/web/src/main/java/de/hsadmin/web/EntryPoint.java
index 8e6bf0a..ec34b7b 100644
--- a/web/src/main/java/de/hsadmin/web/EntryPoint.java
+++ b/web/src/main/java/de/hsadmin/web/EntryPoint.java
@@ -3,9 +3,9 @@ package de.hsadmin.web;
import java.util.List;
import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.Table;
-import com.vaadin.ui.Table.ColumnHeaderMode;
-import com.vaadin.ui.VerticalLayout;
+import com.vaadin.v7.ui.Table;
+import com.vaadin.v7.ui.Table.ColumnHeaderMode;
+import com.vaadin.v7.ui.VerticalLayout;
public class EntryPoint extends CustomComponent {
diff --git a/web/src/main/java/de/hsadmin/web/EntryPointsSelector.java b/web/src/main/java/de/hsadmin/web/EntryPointsSelector.java
index f30693a..5e89394 100644
--- a/web/src/main/java/de/hsadmin/web/EntryPointsSelector.java
+++ b/web/src/main/java/de/hsadmin/web/EntryPointsSelector.java
@@ -1,14 +1,14 @@
package de.hsadmin.web;
-import com.vaadin.event.ItemClickEvent;
-import com.vaadin.event.ItemClickEvent.ItemClickListener;
+import com.vaadin.v7.event.ItemClickEvent;
+import com.vaadin.v7.event.ItemClickEvent.ItemClickListener;
import com.vaadin.ui.Accordion;
import com.vaadin.ui.Component;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.Panel;
import com.vaadin.ui.TabSheet.SelectedTabChangeEvent;
import com.vaadin.ui.TabSheet.SelectedTabChangeListener;
-import com.vaadin.ui.Table;
+import com.vaadin.v7.ui.Table;
import de.hsadmin.rpc.RpcException;
diff --git a/web/src/main/java/de/hsadmin/web/GenericEditorFactory.java b/web/src/main/java/de/hsadmin/web/GenericEditorFactory.java
index 724138d..d1b7240 100644
--- a/web/src/main/java/de/hsadmin/web/GenericEditorFactory.java
+++ b/web/src/main/java/de/hsadmin/web/GenericEditorFactory.java
@@ -8,7 +8,7 @@ import java.util.Map;
import org.apache.xmlrpc.XmlRpcException;
-import com.vaadin.data.Validator;
+import com.vaadin.v7.data.Validator;
import de.hsadmin.model.IRemote;
import de.hsadmin.model.TicketService;
diff --git a/web/src/main/java/de/hsadmin/web/HSAdminUI.java b/web/src/main/java/de/hsadmin/web/HSAdminUI.java
index 5942612..d93e39b 100644
--- a/web/src/main/java/de/hsadmin/web/HSAdminUI.java
+++ b/web/src/main/java/de/hsadmin/web/HSAdminUI.java
@@ -7,11 +7,12 @@ import javax.servlet.annotation.WebServlet;
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.Title;
import com.vaadin.annotations.VaadinServletConfiguration;
+import com.vaadin.annotations.Widgetset;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.ui.UI;
-import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.themes.ValoTheme;
+import com.vaadin.v7.ui.VerticalLayout;
import de.hsadmin.common.error.TechnicalException;
import de.hsadmin.model.TicketService;
@@ -19,6 +20,7 @@ import de.hsadmin.model.TicketServiceFactory;
@Title("HSAdmin Web")
@Theme(ValoTheme.THEME_NAME)
+@Widgetset("com.vaadin.v7.Vaadin7WidgetSet")
public class HSAdminUI extends UI {
private static final long serialVersionUID = 1L;
diff --git a/web/src/main/java/de/hsadmin/web/HSConfirmBox.java b/web/src/main/java/de/hsadmin/web/HSConfirmBox.java
index ab9ada8..7f35831 100644
--- a/web/src/main/java/de/hsadmin/web/HSConfirmBox.java
+++ b/web/src/main/java/de/hsadmin/web/HSConfirmBox.java
@@ -5,10 +5,11 @@ import org.apache.xmlrpc.XmlRpcException;
import com.vaadin.event.ShortcutAction.KeyCode;
import com.vaadin.server.ErrorMessage;
+import com.vaadin.shared.ui.ErrorLevel;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.v7.ui.HorizontalLayout;
import com.vaadin.ui.Window;
import com.vaadin.ui.themes.ValoTheme;
diff --git a/web/src/main/java/de/hsadmin/web/HSDateSelect.java b/web/src/main/java/de/hsadmin/web/HSDateSelect.java
index 973fe3c..ca49917 100644
--- a/web/src/main/java/de/hsadmin/web/HSDateSelect.java
+++ b/web/src/main/java/de/hsadmin/web/HSDateSelect.java
@@ -2,8 +2,8 @@ package de.hsadmin.web;
import java.util.Map;
-import com.vaadin.data.util.converter.StringToDateConverter;
-import com.vaadin.ui.DateField;
+import com.vaadin.v7.data.util.converter.StringToDateConverter;
+import com.vaadin.v7.ui.DateField;
import de.hsadmin.rpc.PropertyInfo;
diff --git a/web/src/main/java/de/hsadmin/web/HSPasswordField.java b/web/src/main/java/de/hsadmin/web/HSPasswordField.java
index 9f81269..c00e866 100644
--- a/web/src/main/java/de/hsadmin/web/HSPasswordField.java
+++ b/web/src/main/java/de/hsadmin/web/HSPasswordField.java
@@ -2,7 +2,7 @@ package de.hsadmin.web;
import java.util.Map;
-import com.vaadin.ui.PasswordField;
+import com.vaadin.v7.ui.PasswordField;
public class HSPasswordField extends PasswordField implements IHSEditor {
diff --git a/web/src/main/java/de/hsadmin/web/HSSelect.java b/web/src/main/java/de/hsadmin/web/HSSelect.java
index 18e3592..6653562 100644
--- a/web/src/main/java/de/hsadmin/web/HSSelect.java
+++ b/web/src/main/java/de/hsadmin/web/HSSelect.java
@@ -3,7 +3,7 @@ package de.hsadmin.web;
import java.util.List;
import java.util.Map;
-import com.vaadin.ui.NativeSelect;
+import com.vaadin.v7.ui.NativeSelect;
import de.hsadmin.rpc.PropertyInfo;
diff --git a/web/src/main/java/de/hsadmin/web/HSTab.java b/web/src/main/java/de/hsadmin/web/HSTab.java
index 3f65413..f53c0e3 100644
--- a/web/src/main/java/de/hsadmin/web/HSTab.java
+++ b/web/src/main/java/de/hsadmin/web/HSTab.java
@@ -10,8 +10,8 @@ import org.apache.xmlrpc.XmlRpcException;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.Table;
-import com.vaadin.ui.VerticalLayout;
+import com.vaadin.v7.ui.Table;
+import com.vaadin.v7.ui.VerticalLayout;
import de.hsadmin.model.TicketService;
import de.hsadmin.rpc.HSAdminSession;
diff --git a/web/src/main/java/de/hsadmin/web/HSTextField.java b/web/src/main/java/de/hsadmin/web/HSTextField.java
index 2297c07..249cd3c 100644
--- a/web/src/main/java/de/hsadmin/web/HSTextField.java
+++ b/web/src/main/java/de/hsadmin/web/HSTextField.java
@@ -2,7 +2,7 @@ package de.hsadmin.web;
import java.util.Map;
-import com.vaadin.ui.TextField;
+import com.vaadin.v7.ui.TextField;
import de.hsadmin.rpc.PropertyInfo;
diff --git a/web/src/main/java/de/hsadmin/web/HelpWindow.java b/web/src/main/java/de/hsadmin/web/HelpWindow.java
index e479214..52e8144 100644
--- a/web/src/main/java/de/hsadmin/web/HelpWindow.java
+++ b/web/src/main/java/de/hsadmin/web/HelpWindow.java
@@ -6,7 +6,7 @@ import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.Component;
-import com.vaadin.ui.VerticalLayout;
+import com.vaadin.v7.ui.VerticalLayout;
import com.vaadin.ui.Window;
public class HelpWindow extends Window {
diff --git a/web/src/main/java/de/hsadmin/web/IHSEditor.java b/web/src/main/java/de/hsadmin/web/IHSEditor.java
index 11c9ce0..9e5edf8 100644
--- a/web/src/main/java/de/hsadmin/web/IHSEditor.java
+++ b/web/src/main/java/de/hsadmin/web/IHSEditor.java
@@ -2,7 +2,7 @@ package de.hsadmin.web;
import java.util.Map;
-import com.vaadin.data.Validator;
+import com.vaadin.v7.data.Validator;
import com.vaadin.ui.Component;
public interface IHSEditor extends Component {
diff --git a/web/src/main/java/de/hsadmin/web/InfoWindow.java b/web/src/main/java/de/hsadmin/web/InfoWindow.java
index 98525ae..e3104b4 100644
--- a/web/src/main/java/de/hsadmin/web/InfoWindow.java
+++ b/web/src/main/java/de/hsadmin/web/InfoWindow.java
@@ -5,8 +5,8 @@ import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.themes.ValoTheme;
-import com.vaadin.ui.Label;
-import com.vaadin.ui.VerticalLayout;
+import com.vaadin.v7.ui.Label;
+import com.vaadin.v7.ui.VerticalLayout;
import com.vaadin.ui.Window;
public class InfoWindow extends Window {
diff --git a/web/src/main/java/de/hsadmin/web/LoginWindow.java b/web/src/main/java/de/hsadmin/web/LoginWindow.java
index 6431030..3d6bd16 100644
--- a/web/src/main/java/de/hsadmin/web/LoginWindow.java
+++ b/web/src/main/java/de/hsadmin/web/LoginWindow.java
@@ -4,16 +4,16 @@ import java.util.HashMap;
import java.util.Map;
import com.vaadin.event.ShortcutAction.KeyCode;
-import com.vaadin.ui.AbstractTextField;
+import com.vaadin.v7.ui.AbstractTextField;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.Component;
import com.vaadin.ui.FormLayout;
import com.vaadin.ui.HasComponents;
-import com.vaadin.ui.Label;
-import com.vaadin.ui.PasswordField;
-import com.vaadin.ui.TextField;
+import com.vaadin.v7.ui.Label;
+import com.vaadin.v7.ui.PasswordField;
+import com.vaadin.v7.ui.TextField;
import com.vaadin.ui.Window;
import com.vaadin.ui.themes.ValoTheme;
diff --git a/web/src/main/java/de/hsadmin/web/MainToolbar.java b/web/src/main/java/de/hsadmin/web/MainToolbar.java
index 00be961..72e1f96 100644
--- a/web/src/main/java/de/hsadmin/web/MainToolbar.java
+++ b/web/src/main/java/de/hsadmin/web/MainToolbar.java
@@ -10,7 +10,7 @@ import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.Component;
import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.v7.ui.HorizontalLayout;
import com.vaadin.ui.Panel;
import com.vaadin.ui.UI;
import com.vaadin.ui.Window;
diff --git a/web/src/main/java/de/hsadmin/web/MainWindow.java b/web/src/main/java/de/hsadmin/web/MainWindow.java
index 620f03a..43078a3 100644
--- a/web/src/main/java/de/hsadmin/web/MainWindow.java
+++ b/web/src/main/java/de/hsadmin/web/MainWindow.java
@@ -13,7 +13,7 @@ import com.vaadin.ui.AbstractSplitPanel;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.HorizontalSplitPanel;
import com.vaadin.ui.Panel;
-import com.vaadin.ui.VerticalLayout;
+import com.vaadin.v7.ui.VerticalLayout;
import de.hsadmin.common.config.Config;
import de.hsadmin.common.error.TechnicalException;
diff --git a/web/src/main/java/de/hsadmin/web/NullEditor.java b/web/src/main/java/de/hsadmin/web/NullEditor.java
index 165402f..f84509a 100644
--- a/web/src/main/java/de/hsadmin/web/NullEditor.java
+++ b/web/src/main/java/de/hsadmin/web/NullEditor.java
@@ -2,8 +2,8 @@ package de.hsadmin.web;
import java.util.Map;
-import com.vaadin.data.Validator;
-import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.v7.data.Validator;
+import com.vaadin.v7.ui.HorizontalLayout;
public class NullEditor extends HorizontalLayout implements IHSEditor {
diff --git a/web/src/main/java/de/hsadmin/web/PacNamePrefixValidator.java b/web/src/main/java/de/hsadmin/web/PacNamePrefixValidator.java
index 53ed830..fa5c6f8 100644
--- a/web/src/main/java/de/hsadmin/web/PacNamePrefixValidator.java
+++ b/web/src/main/java/de/hsadmin/web/PacNamePrefixValidator.java
@@ -1,6 +1,6 @@
package de.hsadmin.web;
-import com.vaadin.data.Validator;
+import com.vaadin.v7.data.Validator;
public class PacNamePrefixValidator implements Validator {
diff --git a/web/src/main/java/de/hsadmin/web/PanelToolbar.java b/web/src/main/java/de/hsadmin/web/PanelToolbar.java
index a379a60..eff3f4e 100644
--- a/web/src/main/java/de/hsadmin/web/PanelToolbar.java
+++ b/web/src/main/java/de/hsadmin/web/PanelToolbar.java
@@ -10,7 +10,7 @@ import com.vaadin.server.ThemeResource;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.v7.ui.HorizontalLayout;
import com.vaadin.ui.UI;
import com.vaadin.ui.Window;
diff --git a/web/src/main/java/de/hsadmin/web/PasswordValidator.java b/web/src/main/java/de/hsadmin/web/PasswordValidator.java
index bf0398c..1a4fb67 100644
--- a/web/src/main/java/de/hsadmin/web/PasswordValidator.java
+++ b/web/src/main/java/de/hsadmin/web/PasswordValidator.java
@@ -1,6 +1,6 @@
package de.hsadmin.web;
-import com.vaadin.data.Validator;
+import com.vaadin.v7.data.Validator;
public class PasswordValidator implements Validator {