mirror of
https://gitee.com/dcren/initializr.git
synced 2025-11-28 17:32:34 +08:00
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:
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()));
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user