Fix initial Java migration

This commit fixes several issues with the initial java migration.

On MacOS, the name of the temp directory can be `T` and the new tgz API
requires a parent folder whose name has at least 3 characters.

The Selenium tests require a more precise element to show the advanced
section.

The integration tests were generation the docs snippet on the wrong
accept header.
This commit is contained in:
Stephane Nicoll
2017-02-08 11:32:28 +01:00
parent ec5a7da507
commit 2c0269c96b
4 changed files with 19 additions and 11 deletions

View File

@@ -67,9 +67,10 @@ class ProjectGenerator {
@Autowired
ProjectResourceLocator projectResourceLocator = new ProjectResourceLocator()
@Value('${TMPDIR:.}')
@Value('${TMPDIR:.}/initializr')
String tmpdir
private File temporaryDirectory
private transient Map<String, List<File>> temporaryFiles = [:]
/**
@@ -126,7 +127,7 @@ class ProjectGenerator {
protected File doGenerateProjectStructure(ProjectRequest request) {
def model = resolveModel(request)
def rootDir = File.createTempFile('tmp', '', new File(tmpdir))
def rootDir = File.createTempFile('tmp', '', getTemporaryDirectory())
addTempFile(rootDir.name, rootDir)
rootDir.delete()
rootDir.mkdirs()
@@ -182,11 +183,19 @@ class ProjectGenerator {
* directory and extension
*/
File createDistributionFile(File dir, String extension) {
def download = new File(tmpdir, dir.name + extension)
def download = new File(getTemporaryDirectory(), dir.name + extension)
addTempFile(dir.name, download)
download
}
private File getTemporaryDirectory() {
if (!temporaryDirectory) {
temporaryDirectory = new File(tmpdir, 'initializr')
temporaryDirectory.mkdirs()
}
temporaryDirectory
}
/**
* Clean all the temporary files that are related to this root
* directory.

View File

@@ -19,7 +19,6 @@ package io.spring.initializr.service
import java.util.concurrent.Executor
import io.spring.initializr.metadata.InitializrMetadataProvider
import io.spring.initializr.util.GroovyTemplate
import io.spring.initializr.web.project.LegacyStsController
import org.springframework.boot.SpringApplication
@@ -47,9 +46,8 @@ class InitializrService {
@Bean
@SuppressWarnings("deprecation")
LegacyStsController legacyStsController(InitializrMetadataProvider metadataProvider,
ResourceUrlProvider resourceUrlProvider,
GroovyTemplate groovyTemplate) {
new LegacyStsController(metadataProvider, resourceUrlProvider, groovyTemplate)
ResourceUrlProvider resourceUrlProvider) {
new LegacyStsController(metadataProvider, resourceUrlProvider)
}
@Configuration

View File

@@ -169,9 +169,6 @@ public class MainControllerIntegrationTests
@Test
public void metadataWithV2AcceptHeader() {
getRequests().setFields("_links.maven-project", "dependencies.values[0]",
"type.values[0]", "javaVersion.values[0]", "packaging.values[0]",
"bootVersion.values[0]", "language.values[0]");
ResponseEntity<String> response = invokeHome(null,
"application/vnd.initializr.v2+json");
validateMetadata(response, InitializrMetadataVersion.V2.getMediaType(), "2.0.0",
@@ -180,6 +177,9 @@ public class MainControllerIntegrationTests
@Test
public void metadataWithCurrentAcceptHeader() {
getRequests().setFields("_links.maven-project", "dependencies.values[0]",
"type.values[0]", "javaVersion.values[0]", "packaging.values[0]",
"bootVersion.values[0]", "language.values[0]");
ResponseEntity<String> response = invokeHome(null,
"application/vnd.initializr.v2.1+json");
assertThat(response.getHeaders().getFirst(HttpHeaders.ETAG), not(nullValue()));

View File

@@ -436,7 +436,8 @@ class HomePage {
}
public void advanced() {
form.findElement(By.cssSelector(".tofullversion")).click();
form.findElement(By.cssSelector(".tofullversion"))
.findElement(By.tagName("a")).click();
}
public void simple() {