public class FrontendUtils extends Object
Modifier and Type | Class and Description |
---|---|
static class |
FrontendUtils.UnknownVersionException
Thrown when detecting the version of a tool fails.
|
Modifier and Type | Field and Description |
---|---|
static String |
BRIGHT_BLUE |
static String |
CHUNKS
A key in a Json object for chunks list.
|
static String |
CSS_IMPORTS
A key in a Json object for css imports data.
|
static String |
DEAULT_FLOW_RESOURCES_FOLDER
Default folder for copying front-end resources present in the classpath
jars.
|
static String |
DEFAULT_FRONTEND_DIR
Path of the folder containing application frontend source files, it needs
to be relative to the
DEFAULT_NODE_DIR
By default it is /frontend in the project folder. |
static String |
DEFAULT_GENERATED_DIR
Default folder name for flow generated stuff relative to the
TARGET . |
static String |
DEFAULT_NODE_DIR
Default folder for the node related content.
|
static String |
DEVMODE_GIZMO_MODULE
Development mode gizmo JS module.
|
static String |
DISABLE_CHECK |
static String |
FALLBACK
A key in a Json object for fallback chunk.
|
static String |
FALLBACK_IMPORTS_NAME
Name of the file that contains all application imports, javascript, theme
and style annotations which are not discovered by the current scanning
strategy (but they are in the project classpath).
|
static String |
FLOW_NPM_PACKAGE_NAME
The NPM package name that will be used for the javascript files present
in jar resources that will to be copied to the npm folder so as they are
accessible to webpack.
|
static String |
FRONTEND
Default folder used for source and generated folders.
|
static String |
GREEN |
static String |
IMPORTS_NAME
Name of the file that contains application imports, javascript, theme and
style annotations.
|
static String |
INSTALL_NODE_LOCALLY |
static String |
JS_MODULES
A key in a Json object for js modules data.
|
static String |
NODE_MODULES
Location for the installed node packages.
|
static String |
PARAM_FRONTEND_DIR
A parameter for overriding the
DEFAULT_FRONTEND_DIR
folder. |
static String |
PARAM_GENERATED_DIR
A parameter for overriding the
DEFAULT_GENERATED_DIR folder. |
static String |
PARAM_IGNORE_VERSION_CHECKS
Set to
true to ignore node/npm tool version checks. |
static String |
PARAM_TOKEN_FILE
A parameter informing about the location of the
TOKEN_FILE . |
static String |
PROJECT_BASEDIR |
static String |
RED |
static String |
TARGET
Default target folder for the java project.
|
static String |
TOKEN_FILE
File used to enable npm mode.
|
static String |
WEBPACK_CONFIG
The name of the webpack configuration file.
|
static String |
WEBPACK_GENERATED
The name of the webpack generated configuration file.
|
static String |
WEBPACK_PREFIX_ALIAS
A special prefix used by webpack to map imports placed in the
DEFAULT_FRONTEND_DIR . |
static String |
YELLOW |
Modifier and Type | Method and Description |
---|---|
static String |
commandToString(String baseDir,
List<String> command)
Pretty prints a command line order.
|
static void |
console(String format,
Object message)
Intentionally send to console instead to log, useful when executing
external processes.
|
static ProcessBuilder |
createProcessBuilder(List<String> command)
Creates a process builder for the given list of program and arguments.
|
static String |
getOsName()
Get the Operating System name from the
os.name system property. |
static String |
getStatsAssetsByChunkName(VaadinService service)
Load the asset chunks from stats.json.
|
static String |
getStatsContent(VaadinService service)
Gets the content of the
stats.json file produced by webpack. |
static String |
getStatsHash(VaadinService service)
Get the latest has for the stats file in development mode.
|
static String |
getUnixPath(Path source)
Get path as a String in Unix form.
|
static String |
getUnixRelativePath(Path source,
Path target)
Get relative path from a source path to a target path in Unix form.
|
static File |
getVaadinHomeDirectory()
Gets vaadin home directory (
".vaadin" folder in the user home
dir). |
protected static FrontendVersion |
getVersion(String tool,
List<String> versionCommand) |
static boolean |
isWebpackConfigFile(File file)
Checks whether the
file is a webpack configuration file with the
expected content (includes a configuration generated by Flow). |
static boolean |
isWindows()
Check if the current os is Windows.
|
static FrontendVersion |
parseFrontendVersion(String versionString)
Parse the version number of node/npm from version output string.
|
static FallbackChunk |
readFallbackChunk(elemental.json.JsonObject object)
Read fallback chunk data from a json object.
|
static String |
streamToString(InputStream inputStream)
Read a stream and copy the content in a String.
|
public static final String PROJECT_BASEDIR
public static final String DEFAULT_NODE_DIR
Constants.PACKAGE_JSON
, WEBPACK_CONFIG
,
NODE_MODULES
.
By default it's the project root folder.public static final String NODE_MODULES
NODE_PATH
.public static final String FRONTEND
public static final String DEFAULT_FRONTEND_DIR
DEFAULT_NODE_DIR
By default it is /frontend
in the project folder.public static final String WEBPACK_CONFIG
public static final String WEBPACK_GENERATED
public static final String TARGET
public static final String FLOW_NPM_PACKAGE_NAME
public static final String DEAULT_FLOW_RESOURCES_FOLDER
public static final String DEVMODE_GIZMO_MODULE
public static final String DEFAULT_GENERATED_DIR
TARGET
.public static final String IMPORTS_NAME
DEFAULT_GENERATED_DIR
folder.public static final String FALLBACK_IMPORTS_NAME
IMPORTS_NAME
file. It
is always generated in the DEFAULT_GENERATED_DIR
folder.public static final String PARAM_GENERATED_DIR
DEFAULT_GENERATED_DIR
folder.public static final String PARAM_FRONTEND_DIR
DEFAULT_FRONTEND_DIR
folder.public static final String PARAM_IGNORE_VERSION_CHECKS
true
to ignore node/npm tool version checks.public static final String WEBPACK_PREFIX_ALIAS
DEFAULT_FRONTEND_DIR
. e.g.
import 'Frontend/foo.js';
references the
filefrontend/foo.js
.public static final String TOKEN_FILE
public static final String CHUNKS
public static final String FALLBACK
public static final String CSS_IMPORTS
public static final String JS_MODULES
public static final String PARAM_TOKEN_FILE
TOKEN_FILE
.public static final String INSTALL_NODE_LOCALLY
public static final String DISABLE_CHECK
public static final String YELLOW
public static final String RED
public static final String GREEN
public static final String BRIGHT_BLUE
public static String getOsName()
os.name
system property.public static boolean isWindows()
public static String streamToString(InputStream inputStream)
inputStream
- the input streampublic static ProcessBuilder createProcessBuilder(List<String> command)
command
- a list with the program and argumentspublic static String getStatsContent(VaadinService service) throws IOException
stats.json
file produced by webpack.service
- the vaadin service.IOException
- on error reading stats file.public static String getStatsHash(VaadinService service) throws IOException
In production mode and disabled dev server mode an empty string is returned.
service
- the Vaadin service.IOException
- if an I/O error occurs while creating the input stream.public static String getStatsAssetsByChunkName(VaadinService service) throws IOException
service
- the Vaadin service.null
if stats.json not found or content not found.IOException
- if an I/O error occurs while creating the input stream.public static boolean isWebpackConfigFile(File file) throws IOException
file
is a webpack configuration file with the
expected content (includes a configuration generated by Flow).file
- a file to checktrue
iff the file exists and includes a generated
configurationIOException
- if an I/O error occurs while reading the filepublic static String getUnixRelativePath(Path source, Path target)
source
- the source pathtarget
- the target pathpublic static String getUnixPath(Path source)
source
- path to getpublic static FallbackChunk readFallbackChunk(elemental.json.JsonObject object)
object
- json object to read fallback chunk dataprotected static FrontendVersion getVersion(String tool, List<String> versionCommand) throws FrontendUtils.UnknownVersionException
public static FrontendVersion parseFrontendVersion(String versionString) throws IOException
versionString
- string containing version output, typically produced by
tool --version
IOException
- if parsing failspublic static File getVaadinHomeDirectory()
".vaadin"
folder in the user home
dir).
The directory is created if it's doesn't exist.
public static String commandToString(String baseDir, List<String> command)
baseDir
- the current directorycommand
- the command and it's argumentsCopyright © 2020. All rights reserved.