Search in sources :

Example 6 with ExecutionFailedException

use of com.vaadin.flow.server.ExecutionFailedException in project flow by vaadin.

the class TaskUpdateThemeImportTest method taskExecuted_customThemeFolderExistsInBothFrontendAndStaticResources_throwsException.

@Test
public void taskExecuted_customThemeFolderExistsInBothFrontendAndStaticResources_throwsException() {
    File themeDir = new File(frontendDirectory, CUSTOM_THEME_PATH);
    Assert.assertTrue(themeDir.mkdirs());
    String staticResources = String.join("/", APPLICATION_STATIC_RESOURCES, CUSTOM_THEME_PATH);
    File themeDirInStatic = new File(projectRoot, staticResources);
    Assert.assertTrue(themeDirInStatic.mkdirs());
    ExecutionFailedException e = Assert.assertThrows(ExecutionFailedException.class, taskUpdateThemeImport::execute);
    Assert.assertTrue(e.getMessage().contains(String.format("Discovered Theme folder for theme '%s' " + "in more than one place in the project. Please " + "make sure there is only one theme folder with name '%s' " + "exists in the your project. ", CUSTOM_THEME_NAME, CUSTOM_THEME_NAME)));
}
Also used : ExecutionFailedException(com.vaadin.flow.server.ExecutionFailedException) File(java.io.File) Test(org.junit.Test)

Example 7 with ExecutionFailedException

use of com.vaadin.flow.server.ExecutionFailedException in project flow by vaadin.

the class TaskUpdateThemeImportTest method taskExecuted_customThemeFolderExistsInBothMetaInfResourcesAndInClasspath_throwsException.

@Test
public void taskExecuted_customThemeFolderExistsInBothMetaInfResourcesAndInClasspath_throwsException() {
    String metaInfResources = String.join("/", APPLICATION_META_INF_RESOURCES, CUSTOM_THEME_PATH);
    File themeDir = new File(projectRoot, metaInfResources);
    Assert.assertTrue(themeDir.mkdirs());
    String classPathThemePath = NODE_MODULES + FLOW_NPM_PACKAGE_NAME + CUSTOM_THEME_PATH;
    File classPathThemeDir = new File(projectRoot, classPathThemePath);
    Assert.assertTrue(classPathThemeDir.mkdirs());
    ExecutionFailedException e = Assert.assertThrows(ExecutionFailedException.class, taskUpdateThemeImport::execute);
    Assert.assertTrue(e.getMessage().contains(String.format("Theme '%s' should not exist inside a " + "jar and in the project at the same time.", CUSTOM_THEME_NAME)));
}
Also used : ExecutionFailedException(com.vaadin.flow.server.ExecutionFailedException) File(java.io.File) Test(org.junit.Test)

Example 8 with ExecutionFailedException

use of com.vaadin.flow.server.ExecutionFailedException in project flow by vaadin.

the class TaskUpdateThemeImportTest method taskExecuted_customThemeFolderExistsInBothStaticAndMetaInfResources_throwsException.

@Test
public void taskExecuted_customThemeFolderExistsInBothStaticAndMetaInfResources_throwsException() {
    String staticResources = String.join("/", APPLICATION_STATIC_RESOURCES, CUSTOM_THEME_PATH);
    File themeDirInStatic = new File(projectRoot, staticResources);
    Assert.assertTrue(themeDirInStatic.mkdirs());
    String metaInfResources = String.join("/", APPLICATION_META_INF_RESOURCES, CUSTOM_THEME_PATH);
    File themeDirInMetaInf = new File(projectRoot, metaInfResources);
    Assert.assertTrue(themeDirInMetaInf.mkdirs());
    ExecutionFailedException e = Assert.assertThrows(ExecutionFailedException.class, taskUpdateThemeImport::execute);
    Assert.assertTrue(e.getMessage().contains(String.format("Discovered Theme folder for theme '%s' " + "in more than one place in the project. Please " + "make sure there is only one theme folder with name '%s' " + "exists in the your project. ", CUSTOM_THEME_NAME, CUSTOM_THEME_NAME)));
}
Also used : ExecutionFailedException(com.vaadin.flow.server.ExecutionFailedException) File(java.io.File) Test(org.junit.Test)

Example 9 with ExecutionFailedException

use of com.vaadin.flow.server.ExecutionFailedException in project flow by vaadin.

the class TaskUpdateThemeImportTest method taskExecuted_customThemeFolderExistsInBothFrontendAndMetaInfResources_throwsException.

@Test
public void taskExecuted_customThemeFolderExistsInBothFrontendAndMetaInfResources_throwsException() {
    File themeDir = new File(frontendDirectory, CUSTOM_THEME_PATH);
    Assert.assertTrue(themeDir.mkdirs());
    String metaInfResources = String.join("/", APPLICATION_META_INF_RESOURCES, CUSTOM_THEME_PATH);
    File themeDirInMetaInf = new File(projectRoot, metaInfResources);
    Assert.assertTrue(themeDirInMetaInf.mkdirs());
    ExecutionFailedException e = Assert.assertThrows(ExecutionFailedException.class, taskUpdateThemeImport::execute);
    Assert.assertTrue(e.getMessage().contains(String.format("Discovered Theme folder for theme '%s' " + "in more than one place in the project. Please " + "make sure there is only one theme folder with name '%s' " + "exists in the your project. ", CUSTOM_THEME_NAME, CUSTOM_THEME_NAME)));
}
Also used : ExecutionFailedException(com.vaadin.flow.server.ExecutionFailedException) File(java.io.File) Test(org.junit.Test)

Example 10 with ExecutionFailedException

use of com.vaadin.flow.server.ExecutionFailedException in project flow by vaadin.

the class AbstractDevServerRunner method validateFiles.

/**
 * Validates that the needed server binary and config file(s) are available.
 *
 * @throws ExecutionFailedException
 *             if there is a problem
 */
protected void validateFiles() throws ExecutionFailedException {
    assert getPort() == 0;
    // Skip checks if we have a dev server already running
    File binary = getServerBinary();
    File config = getServerConfig();
    if (!getProjectRoot().exists()) {
        getLogger().warn("No project folder '{}' exists", getProjectRoot());
        throw new ExecutionFailedException(START_FAILURE + " the target execution folder doesn't exist.");
    }
    if (!binary.exists()) {
        getLogger().warn("'{}' doesn't exist. Did you run `npm install`?", binary);
        throw new ExecutionFailedException(String.format("%s '%s' doesn't exist. `npm install` has not run or failed.", START_FAILURE, binary));
    } else if (!binary.canExecute()) {
        getLogger().warn(" '{}' is not an executable. Did you run `npm install`?", binary);
        throw new ExecutionFailedException(String.format("%s '%s' is not an executable." + " `npm install` has not run or failed.", START_FAILURE, binary));
    }
    if (!config.canRead()) {
        getLogger().warn("{} configuration '{}' is not found or is not readable.", getServerName(), config);
        throw new ExecutionFailedException(String.format("%s '%s' doesn't exist or is not readable.", START_FAILURE, config));
    }
}
Also used : ExecutionFailedException(com.vaadin.flow.server.ExecutionFailedException) File(java.io.File)

Aggregations

ExecutionFailedException (com.vaadin.flow.server.ExecutionFailedException)20 File (java.io.File)17 Test (org.junit.Test)10 IOException (java.io.IOException)5 Lookup (com.vaadin.flow.di.Lookup)2 ClassFinder (com.vaadin.flow.server.frontend.scanner.ClassFinder)2 ReflectionsClassFinder (com.vaadin.flow.server.scanner.ReflectionsClassFinder)2 URI (java.net.URI)2 AbstractDevModeTest (com.vaadin.base.devserver.startup.AbstractDevModeTest)1 Template (com.vaadin.flow.internal.Template)1 VaadinResponse (com.vaadin.flow.server.VaadinResponse)1 FallbackChunk (com.vaadin.flow.server.frontend.FallbackChunk)1 FrontendTools (com.vaadin.flow.server.frontend.FrontendTools)1 FrontendToolsSettings (com.vaadin.flow.server.frontend.FrontendToolsSettings)1 FrontendUtils.commandToString (com.vaadin.flow.server.frontend.FrontendUtils.commandToString)1 NodeTasks (com.vaadin.flow.server.frontend.NodeTasks)1 BufferedReader (java.io.BufferedReader)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 InputStreamReader (java.io.InputStreamReader)1 UncheckedIOException (java.io.UncheckedIOException)1