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

View File

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

View File

@@ -169,9 +169,6 @@ public class MainControllerIntegrationTests
@Test @Test
public void metadataWithV2AcceptHeader() { 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, ResponseEntity<String> response = invokeHome(null,
"application/vnd.initializr.v2+json"); "application/vnd.initializr.v2+json");
validateMetadata(response, InitializrMetadataVersion.V2.getMediaType(), "2.0.0", validateMetadata(response, InitializrMetadataVersion.V2.getMediaType(), "2.0.0",
@@ -180,6 +177,9 @@ public class MainControllerIntegrationTests
@Test @Test
public void metadataWithCurrentAcceptHeader() { 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, ResponseEntity<String> response = invokeHome(null,
"application/vnd.initializr.v2.1+json"); "application/vnd.initializr.v2.1+json");
assertThat(response.getHeaders().getFirst(HttpHeaders.ETAG), not(nullValue())); assertThat(response.getHeaders().getFirst(HttpHeaders.ETAG), not(nullValue()));

View File

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