Skip to content

Commit

Permalink
Add Vaadin Spring dependency version to BOM (#112)
Browse files Browse the repository at this point in the history
* Add Vaadin Spring dependency version to BOM

This patch adds a smoke test that check that a basic
Vaadin UI loads and communication works.

* Remove Maven wrapper from Spring Boot test

* Remove .gitignore, add missing newlines

* Minor fixes to pom.xml files

* Separate vaadin-test from vaadin-root

* Fix whitespace
  • Loading branch information
tsuoanttila authored and pleku committed Dec 14, 2016
1 parent 44b75ed commit 4852034
Show file tree
Hide file tree
Showing 6 changed files with 223 additions and 22 deletions.
32 changes: 32 additions & 0 deletions bom/pom.xml
Expand Up @@ -5,6 +5,7 @@
<groupId>com.vaadin</groupId>
<artifactId>vaadin-parent</artifactId>
<version>1.0.0</version>
<relativePath />
</parent>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-bom</artifactId>
Expand All @@ -13,6 +14,18 @@
<name>Vaadin Framework (Bill of Materials)</name>
<description>Vaadin Framework (Bill of Materials)</description>
<url>http://vaadin.com</url>

<properties>
<vaadin.spring.version>2.0-SNAPSHOT</vaadin.spring.version>
</properties>

<repositories>
<repository>
<id>vaadin-snapshots</id>
<url>http://oss.sonatype.org/content/repositories/vaadin-snapshots</url>
</repository>
</repositories>

<dependencyManagement>
<dependencies>
<dependency>
Expand Down Expand Up @@ -75,6 +88,25 @@
<artifactId>vaadin-compatibility-client-compiled</artifactId>
<version>${project.version}</version>
</dependency>

<!-- AddOn Dependencies -->

<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-spring-boot-starter</artifactId>
<version>${vaadin.spring.version}</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-spring-boot</artifactId>
<version>${vaadin.spring.version}</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-spring</artifactId>
<version>${vaadin.spring.version}</version>
</dependency>

</dependencies>
</dependencyManagement>
<profiles>
Expand Down
58 changes: 36 additions & 22 deletions test/pom.xml
Expand Up @@ -2,16 +2,20 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-root</artifactId>
<version>8.0-SNAPSHOT</version>
</parent>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-test</artifactId>
<name>vaadin-test</name>
<version>1.0-SNAPSHOT</version>

<packaging>pom</packaging>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<jetty.version>9.3.7.v20160115</jetty.version>
<phantomjs.version>2.1.1</phantomjs.version>
<vaadin.version>8.0-SNAPSHOT</vaadin.version>
<failOnMissingWebXml>false</failOnMissingWebXml>
<vaadin.testbench.version>5.0.0.alpha1</vaadin.testbench.version>
</properties>

<repositories>
Expand All @@ -21,43 +25,42 @@
</repository>
</repositories>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-bom</artifactId>
<version>${vaadin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>

<!-- API DEPENDENCIES -->
<!-- Project modules -->
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-server</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-themes</artifactId>
<version>${project.version}</version>
</dependency>

<!-- Servlet 3.0 API -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>


<!-- Testing -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-testbench</artifactId>
<version>${vaadin.testbench.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand All @@ -71,6 +74,7 @@
<module>addon-using-init-param-widget-set</module>
<module>space in directory</module>
<module>vaadinservletconfiguration-widget-set</module>
<module>spring-boot</module>
</modules>

<build>
Expand Down Expand Up @@ -107,6 +111,7 @@
<plugin>
<groupId>com.github.klieber</groupId>
<artifactId>phantomjs-maven-plugin</artifactId>
<version>0.7</version>
<executions>
<execution>
<goals>
Expand All @@ -118,12 +123,13 @@
</execution>
</executions>
</plugin>

<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<goals>
Expand All @@ -138,6 +144,14 @@
</systemPropertyVariables>
</configuration>
</plugin>

<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
</project>
82 changes: 82 additions & 0 deletions test/spring-boot/pom.xml
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-test</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>vaadin-test-spring-boot</artifactId>
<packaging>jar</packaging>

<name>vaadin-test-spring-boot</name>
<description>Demo project for Vaadin Spring Boot</description>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring.boot.version>1.4.2.RELEASE</spring.boot.version>
</properties>

<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-bom</artifactId>
<version>${vaadin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<type>pom</type>
<scope>import</scope>
<version>${spring.boot.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
</plugin>

<!-- Disable jetty-plugin -->
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty.version}</version>
<executions>
<execution>
<id>start-jetty</id>
<phase />
</execution>
<execution>
<id>stop-jetty</id>
<phase />
</execution>
</executions>
</plugin>
</plugins>
</build>

</project>
29 changes: 29 additions & 0 deletions test/spring-boot/src/main/java/com/example/DemoApplication.java
@@ -0,0 +1,29 @@
package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import com.vaadin.server.VaadinRequest;
import com.vaadin.spring.annotation.SpringUI;
import com.vaadin.ui.Button;
import com.vaadin.ui.Notification;
import com.vaadin.ui.UI;

@SpringBootApplication
public class DemoApplication {

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

@SpringUI
class MyUI extends UI {
public static final String NOTIFICATION_TEXT = "Thank you for clicking.";

@Override
protected void init(VaadinRequest request) {
setContent(new Button("Click Me!",
e -> Notification.show(NOTIFICATION_TEXT)));
}
}
Empty file.
@@ -0,0 +1,44 @@
package com.example;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.springframework.boot.context.embedded.LocalServerPort;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.vaadin.testbench.TestBench;
import com.vaadin.testbench.TestBenchTestCase;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.testbench.parallel.Browser;

/**
* @author Vaadin Ltd
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class SpringBootSmokeTest extends TestBenchTestCase {

@LocalServerPort
Integer port;

@Before
public void setUp() {
setDriver(TestBench.createDriver(new PhantomJSDriver(
Browser.PHANTOMJS.getDesiredCapabilities())));
}

@Test
public void testPageLoadsAndButtonWorks() {
getDriver().navigate().to("http://localhost:" + port + "");
$(ButtonElement.class).first().click();
Assert.assertTrue($(NotificationElement.class).exists());
Assert.assertEquals(MyUI.NOTIFICATION_TEXT,
$(NotificationElement.class).first().getText());
}
}

0 comments on commit 4852034

Please sign in to comment.