Skip to content

Commit

Permalink
Use Java.type to access Java classes (#886)
Browse files Browse the repository at this point in the history
  • Loading branch information
plata committed Mar 6, 2019
1 parent d217f1b commit cc66adf
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 25 deletions.
19 changes: 12 additions & 7 deletions Engines/Wine/Engine/Implementation/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,8 @@ var engineImplementation = {

var wineGeckoDir = localDirectory + "/share/wine/gecko";

lns(new java.io.File(gecko).getParent(), wineGeckoDir);
var FileClass = Java.type('java.io.File');
lns(new FileClass(gecko).getParent(), wineGeckoDir);
}
},
_installMono: function (setupWizard, winePackage, localDirectory) {
Expand All @@ -127,7 +128,8 @@ var engineImplementation = {

var wineMonoDir = localDirectory + "/share/wine/mono";

lns(new java.io.File(mono).getParent(), wineMonoDir);
var FileClass = Java.type('java.io.File');
lns(new FileClass(mono).getParent(), wineMonoDir);
}
},
delete: function (subCategory, version) {
Expand Down Expand Up @@ -210,7 +212,8 @@ var engineImplementation = {

// do not run 64bit executable in 32bit prefix
if (extensionFile == "exe") {
if (architecture == "x86" && this._ExeAnalyser.is64Bits(new java.io.File(executable))) {
var FileClass = Java.type('java.io.File');
if (architecture == "x86" && this._ExeAnalyser.is64Bits(new FileClass(executable))) {
throw tr("Cannot run 64bit executable in a 32bit Wine prefix.");
}
}
Expand All @@ -223,14 +226,16 @@ var engineImplementation = {
command[0] = wineBinary;
command[1] = executable;
java.lang.System.arraycopy(args, 0, command, 2, args.length);
var processBuilder = new java.lang.ProcessBuilder(command);
var ProcessBuilderClass = Java.type('java.lang.ProcessBuilder');
var processBuilder = new ProcessBuilderClass(command);

var FileClass = Java.type('java.io.File');
if (workingDir) {
processBuilder.directory(new java.io.File(workingDir));
processBuilder.directory(new FileClass(workingDir));
} else {
var driveC = workingContainerDirectory + "/drive_c";
mkdir(driveC);
processBuilder.directory(new java.io.File(driveC));
processBuilder.directory(new FileClass(driveC));
}

var environment = processBuilder.environment();
Expand Down Expand Up @@ -260,7 +265,7 @@ var engineImplementation = {

if (!captureOutput) {
processBuilder.redirectErrorStream(true);
processBuilder.redirectOutput(new java.io.File(workingContainerDirectory + "/wine.log"));
processBuilder.redirectOutput(new FileClass(workingContainerDirectory + "/wine.log"));
}

var process = processBuilder.start();
Expand Down
3 changes: 2 additions & 1 deletion Engines/Wine/Engine/Object/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,8 @@ Wine.prototype.wineServer = function (parameter) {
var subCategory = distribution + "-" + operatingSystem + "-" + architecture;
var version = containerConfiguration.readValue("wineVersion");
var binary = this._implementation.getLocalDirectory(subCategory, version) + "/bin/wineserver";
var processBuilder = new java.lang.ProcessBuilder(Java.to([binary, parameter], "java.lang.String[]"));
var ProcessBuilderClass = Java.type('java.lang.ProcessBuilder');
var processBuilder = new ProcessBuilderClass(Java.to([binary, parameter], "java.lang.String[]"));
var environment = processBuilder.environment();
environment.put("WINEPREFIX", this._implementation.getContainerDirectory(this._implementation.getWorkingContainer()));
processBuilder.inheritIO();
Expand Down
6 changes: 4 additions & 2 deletions Engines/Wine/Plugins/regedit/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ Wine.prototype.regedit = function () {

this.patch = function (patchContent) {
if (typeof patchContent.getClass !== "undefined" && patchContent.getClass().getCanonicalName() == "byte[]") {
patchContent = new java.lang.String(patchContent);
var StringClass = Java.type('java.lang.String');
patchContent = new StringClass(patchContent);
}
var tmpFile = createTempFile("reg");
writeToFile(tmpFile, patchContent);
Expand Down Expand Up @@ -48,7 +49,8 @@ Wine.prototype.regedit = function () {

keyPath.shift();

var registryValue = Bean("registryParser").parseFile(new java.io.File(this.prefixDirectory() + "/" + registryFile), root).getChild(keyPath);
var FileClass = Java.type('java.io.File');
var registryValue = Bean("registryParser").parseFile(new FileClass(this.prefixDirectory() + "/" + registryFile), root).getChild(keyPath);

if (registryValue == null) {
return null;
Expand Down
5 changes: 3 additions & 2 deletions Engines/Wine/Shortcuts/Wine/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -120,13 +120,14 @@ WineShortcut.prototype.create = function () {
throw tr("Executable {0} not found!", this._search)
}

var info = new org.phoenicis.library.dto.ShortcutInfoDTO.Builder()
var ShortcutInfoDTOBuilderClass = Java.type('org.phoenicis.library.dto.ShortcutInfoDTO.Builder');
var info = new ShortcutInfoDTOBuilderClass()
.withCategory(this._category)
.withName(this._name)
.withDescription(this._description)
.build();

var builder = new org.phoenicis.library.dto.ShortcutDTO.Builder()
var builder = new ShortcutInfoDTOBuilderClass()
.withId(this._name)
.withInfo(info)
.withScript(JSON.stringify({
Expand Down
6 changes: 4 additions & 2 deletions Utils/Functions/Filesystem/Extract/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,10 @@ CabExtract.prototype.extract = function (args) {

print("Extracting to: " + this._destination);
mkdir(this._destination);
var processBuilder = new java.lang.ProcessBuilder(Java.to(processArguments, "java.lang.String[]"));
processBuilder.directory(new java.io.File(this._destination));
var ProcessBuilderClass = Java.type('java.lang.ProcessBuilder');
var processBuilder = new ProcessBuilderClass(Java.to(processArguments, "java.lang.String[]"));
var FileClass = Java.type('java.io.File');
processBuilder.directory(new FileClass(this._destination));
processBuilder.inheritIO();
processBuilder.start().waitFor();
}
Expand Down
33 changes: 22 additions & 11 deletions Utils/Functions/Filesystem/Files/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ var fileUtilities = Bean("fileUtilities");
* @returns {string[]} list of files and directories
*/
function ls(directoryPath) { // eslint-disable-line no-unused-vars
return fileUtilities.ls(new java.io.File(directoryPath));
var FileClass = Java.type('java.io.File');
return fileUtilities.ls(new FileClass(directoryPath));
}

/**
Expand All @@ -16,7 +17,8 @@ function ls(directoryPath) { // eslint-disable-line no-unused-vars
* @returns {void}
*/
function mkdir(directoryPath) { // eslint-disable-line no-unused-vars
fileUtilities.mkdir(new java.io.File(directoryPath));
var FileClass = Java.type('java.io.File');
fileUtilities.mkdir(new FileClass(directoryPath));
}

/**
Expand All @@ -25,7 +27,8 @@ function mkdir(directoryPath) { // eslint-disable-line no-unused-vars
* @returns {boolean} true if file exists
*/
function fileExists(filePath) { // eslint-disable-line no-unused-vars
return new java.io.File(filePath).exists();
var FileClass = Java.type('java.io.File');
return new FileClass(filePath).exists();
}

/**
Expand All @@ -34,7 +37,8 @@ function fileExists(filePath) { // eslint-disable-line no-unused-vars
* @returns {string} content
*/
function cat(filePath) { // eslint-disable-line no-unused-vars
return Bean("fileUtilities").getFileContent(new java.io.File(filePath));
var FileClass = Java.type('java.io.File');
return Bean("fileUtilities").getFileContent(new FileClass(filePath));
}

/**
Expand All @@ -44,7 +48,8 @@ function cat(filePath) { // eslint-disable-line no-unused-vars
* @returns {void}
*/
function cp(source, target) { // eslint-disable-line no-unused-vars
return Bean("fileUtilities").copy(new java.io.File(source), new java.io.File(target));
var FileClass = Java.type('java.io.File');
return Bean("fileUtilities").copy(new FileClass(source), new FileClass(target));
}

/**
Expand All @@ -53,7 +58,8 @@ function cp(source, target) { // eslint-disable-line no-unused-vars
* @returns {number} file size
*/
function getFileSize(filePath) { // eslint-disable-line no-unused-vars
return Bean("fileUtilities").getSize(new java.io.File(filePath));
var FileClass = Java.type('java.io.File');
return Bean("fileUtilities").getSize(new FileClass(filePath));
}

/**
Expand All @@ -62,7 +68,8 @@ function getFileSize(filePath) { // eslint-disable-line no-unused-vars
* @returns {string} file name
*/
function fileName(filePath) { // eslint-disable-line no-unused-vars
return new java.io.File(filePath).getName();
var FileClass = Java.type('java.io.File');
return new FileClass(filePath).getName();
}

/**
Expand All @@ -72,7 +79,8 @@ function fileName(filePath) { // eslint-disable-line no-unused-vars
* @returns {void}
*/
function lns(target, destination) { // eslint-disable-line no-unused-vars
return Bean("fileUtilities").createSymbolicLink(new java.io.File(destination), new java.io.File(target));
var FileClass = Java.type('java.io.File');
return Bean("fileUtilities").createSymbolicLink(new FileClass(destination), new FileClass(target));
}

/**
Expand All @@ -81,7 +89,8 @@ function lns(target, destination) { // eslint-disable-line no-unused-vars
* @returns {void}
*/
function remove(filePath) { // eslint-disable-line no-unused-vars
return Bean("fileUtilities").remove(new java.io.File(filePath));
var FileClass = Java.type('java.io.File');
return Bean("fileUtilities").remove(new FileClass(filePath));
}

/**
Expand All @@ -91,7 +100,8 @@ function remove(filePath) { // eslint-disable-line no-unused-vars
*/
function touch(filePath) { // eslint-disable-line no-unused-vars
if (!fileExists(filePath)) {
Bean("fileUtilities").writeToFile(new java.io.File(filePath), "");
var FileClass = Java.type('java.io.File');
Bean("fileUtilities").writeToFile(new FileClass(filePath), "");
}
}

Expand All @@ -102,7 +112,8 @@ function touch(filePath) { // eslint-disable-line no-unused-vars
* @returns {void}
*/
function writeToFile(filePath, content) { // eslint-disable-line no-unused-vars
Bean("fileUtilities").writeToFile(new java.io.File(filePath), content);
var FileClass = Java.type('java.io.File');
Bean("fileUtilities").writeToFile(new FileClass(filePath), content);
}

/**
Expand Down

0 comments on commit cc66adf

Please sign in to comment.