private void _npmInstall(boolean reset) throws Exception { Logger logger = getLogger(); int npmInstallRetries = getNpmInstallRetries(); Project project = getProject(); for (int i = 0; i < (npmInstallRetries + 1); i++) { if (reset || (i > 0)) { project.delete(getNodeModulesDir()); } try { super.executeNode(); break; } catch (IOException ioe) { if (i == npmInstallRetries) { throw ioe; } if (logger.isWarnEnabled()) { logger.warn( ioe.getMessage() + ". Running \"npm install\" again"); } _npmCacheVerify(); } } }
private void _npmInstallCheckDigest(boolean reset) throws Exception { String digest = _getNodeModulesCacheDigest(this); byte[] digestBytes = digest.getBytes(StandardCharsets.UTF_8); File nodeModulesDigestFile = getNodeModulesDigestFile(); Path nodeModulesDigestPath = nodeModulesDigestFile.toPath(); if (!reset && Files.exists(nodeModulesDigestPath)) { byte[] bytes = Files.readAllBytes(nodeModulesDigestPath); if (Arrays.equals(bytes, digestBytes)) { return; } reset = true; } else { reset = true; } _npmInstall(reset); Files.write(nodeModulesDigestPath, digestBytes); }
protected void executeNpmInstall(boolean reset) throws Exception { Logger logger = getLogger(); File shrinkwrapJsonFile = getShrinkwrapJsonFile(); if (isRemoveShrinkwrappedUrls() && (shrinkwrapJsonFile != null)) { shrinkwrapJsonPath = shrinkwrapJsonFile.toPath(); StandardCopyOption.REPLACE_EXISTING); _removeShrinkwrappedUrls(); if (_isCacheEnabled()) { if (logger.isInfoEnabled()) { logger.info("Cache for {} is enabled", this); _npmInstallCached(this, reset); if (isCheckDigest()) { _npmInstallCheckDigest(reset); _npmInstall(reset);
public boolean isCheckDigest() { if (_isCacheEnabled()) { return false; } Project project = getProject(); PluginContainer pluginContainer = project.getPlugins(); if (!pluginContainer.hasPlugin("com.liferay.cache") && (getNodeModulesDigestFile() != null)) { return true; } return false; }
throws Exception { Logger logger = npmInstallTask.getLogger(); Project project = npmInstallTask.getProject(); String digest = _getNodeModulesCacheDigest(npmInstallTask); npmInstallTask.getNodeModulesCacheDir(), digest); File nodeModulesDir = npmInstallTask.getNodeModulesDir(); boolean nativeSync = npmInstallTask.isNodeModulesCacheNativeSync(); project, nodeModulesCacheDir, nodeModulesDir, nativeSync); _removeBinDirLinks(logger, nodeModulesDir); npmInstallTask._npmInstall(reset); _removeBinDirLinks(logger, nodeModulesDir); _createBinDirLinks(logger, nodeModulesDir);
@Override public boolean isSatisfiedBy(Task task) { DownloadNodeModuleTask downloadNodeModuleTask = (DownloadNodeModuleTask)task; File moduleDir = downloadNodeModuleTask.getModuleDir(); File moduleParentDir = moduleDir.getParentFile(); if (!moduleParentDir.equals( npmInstallTask.getNodeModulesDir())) { return true; } if (packageJsonMap == null) { return true; } String moduleName = downloadNodeModuleTask.getModuleName(); Map<String, Object> dependenciesJsonMap = (Map<String, Object>)packageJsonMap.get("dependencies"); if ((dependenciesJsonMap != null) && dependenciesJsonMap.containsKey(moduleName)) { return false; } dependenciesJsonMap = (Map<String, Object>)packageJsonMap.get( "devDependencies"); if ((dependenciesJsonMap != null) && dependenciesJsonMap.containsKey(moduleName)) { return false; } return true; }
@InputFile @Optional public File getShrinkwrapJsonFile() { return _getExistentFile("npm-shrinkwrap.json"); }
throws Exception { Logger logger = npmInstallTask.getLogger(); Project project = npmInstallTask.getProject(); String digest = _getNodeModulesCacheDigest(npmInstallTask); npmInstallTask.getNodeModulesCacheDir(), digest); File nodeModulesDir = npmInstallTask.getNodeModulesDir(); boolean nativeSync = npmInstallTask.isNodeModulesCacheNativeSync(); project, nodeModulesCacheDir, nodeModulesDir, nativeSync); _removeBinDirLinks(logger, nodeModulesDir); npmInstallTask._npmInstall(reset); _removeBinDirLinks(logger, nodeModulesDir); _createBinDirLinks(logger, nodeModulesDir);
public boolean isCheckDigest() { if (_isCacheEnabled()) { return false; } Project project = getProject(); PluginContainer pluginContainer = project.getPlugins(); if (!pluginContainer.hasPlugin("com.liferay.cache") && (getNodeModulesDigestFile() != null)) { return true; } return false; }
@Override public boolean isSatisfiedBy(Task task) { DownloadNodeModuleTask downloadNodeModuleTask = (DownloadNodeModuleTask)task; File moduleDir = downloadNodeModuleTask.getModuleDir(); File moduleParentDir = moduleDir.getParentFile(); if (!moduleParentDir.equals( npmInstallTask.getNodeModulesDir())) { return true; } if (packageJsonMap == null) { return true; } String moduleName = downloadNodeModuleTask.getModuleName(); Map<String, Object> dependenciesJsonMap = (Map<String, Object>)packageJsonMap.get("dependencies"); if ((dependenciesJsonMap != null) && dependenciesJsonMap.containsKey(moduleName)) { return false; } dependenciesJsonMap = (Map<String, Object>)packageJsonMap.get( "devDependencies"); if ((dependenciesJsonMap != null) && dependenciesJsonMap.containsKey(moduleName)) { return false; } return true; }
@InputFile @Optional public File getShrinkwrapJsonFile() { return _getExistentFile("npm-shrinkwrap.json"); }
protected void executeNpmInstall(boolean reset) throws Exception { Logger logger = getLogger(); File shrinkwrapJsonFile = getShrinkwrapJsonFile(); if (isRemoveShrinkwrappedUrls() && (shrinkwrapJsonFile != null)) { shrinkwrapJsonPath = shrinkwrapJsonFile.toPath(); StandardCopyOption.REPLACE_EXISTING); _removeShrinkwrappedUrls(); if (_isCacheEnabled()) { if (logger.isInfoEnabled()) { logger.info("Cache for {} is enabled", this); _npmInstallCached(this, reset); if (isCheckDigest()) { _npmInstallCheckDigest(reset); _npmInstall(reset);
private void _npmInstall(boolean reset) throws Exception { Logger logger = getLogger(); int npmInstallRetries = getNpmInstallRetries(); Project project = getProject(); for (int i = 0; i < (npmInstallRetries + 1); i++) { if (reset || (i > 0)) { project.delete(getNodeModulesDir()); } try { super.executeNode(); break; } catch (IOException ioe) { if (i == npmInstallRetries) { throw ioe; } if (logger.isWarnEnabled()) { logger.warn( ioe.getMessage() + ". Running \"npm install\" again"); } _npmCacheVerify(); } } }
private void _npmInstallCheckDigest(boolean reset) throws Exception { String digest = _getNodeModulesCacheDigest(this); byte[] digestBytes = digest.getBytes(StandardCharsets.UTF_8); File nodeModulesDigestFile = getNodeModulesDigestFile(); Path nodeModulesDigestPath = nodeModulesDigestFile.toPath(); if (!reset && Files.exists(nodeModulesDigestPath)) { byte[] bytes = Files.readAllBytes(nodeModulesDigestPath); if (Arrays.equals(bytes, digestBytes)) { return; } reset = true; } else { reset = true; } _npmInstall(reset); Files.write(nodeModulesDigestPath, digestBytes); }
private void _addTasksExpandJSCompileDependency( Task expandJSCompileDependenciesTask, NpmInstallTask npmInstallTask, Configuration configuration) { Project project = expandJSCompileDependenciesTask.getProject(); RenameDependencyClosure renameDependencyClosure = new RenameDependencyClosure(project, configuration.getName()); Iterable<TaskDependency> taskDependencies = JSTranspilerPluginUtil.getTaskDependencies(configuration); for (File file : configuration) { Copy copy = JSTranspilerPluginUtil.addTaskExpandCompileDependency( project, file, npmInstallTask.getNodeModulesDir(), "expandJSCompileDependency", renameDependencyClosure); copy.dependsOn(taskDependencies); copy.mustRunAfter(npmInstallTask); expandJSCompileDependenciesTask.dependsOn(copy); } }
@InputFile @Optional public File getPackageLockJsonFile() { return _getExistentFile("package-lock.json"); }
@InputFile @Optional public File getPackageLockJsonFile() { return _getExistentFile("package-lock.json"); }