Skip to content

Commit f118a35

Browse files
committed
Release 2.4.17
1 parent 1cb9fbe commit f118a35

File tree

558 files changed

+107413
-10772
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

558 files changed

+107413
-10772
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,4 @@ wlsrc
8484
wlsrc/**
8585

8686
translation-work
87-
translation-work/**
87+
.metadata

THIRD_PARTY_LICENSES.txt

Lines changed: 105 additions & 80 deletions
Large diffs are not rendered by default.

assembly/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<parent>
1010
<artifactId>console-backend</artifactId>
1111
<groupId>com.oracle.weblogic</groupId>
12-
<version>2.4.16</version>
12+
<version>2.4.17</version>
1313
</parent>
1414

1515
<packaging>pom</packaging>

build-electron.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
2-
# Copyright 2021, 2024, Oracle and/or its affiliates.
2+
# Copyright 2021, 2025, Oracle and/or its affiliates.
33
# Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.
44

55
do_docker_pull() {
@@ -170,6 +170,7 @@ then
170170
export ELECTRON_GET_USE_PROXY=true GLOBAL_AGENT_HTTPS_PROXY=$https_proxy
171171
fi
172172

173+
npm install --location=global npm || true
173174
npm install
174175

175176
rm -rf dist

build-tools/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66

77
<groupId>com.oracle.weblogic.console-backend</groupId>
88
<artifactId>build-tools</artifactId>
9-
<version>2.4.16</version>
9+
<version>2.4.17</version>
1010
<name>Build Tools</name>
1111

1212
<parent>
1313
<groupId>com.oracle.weblogic</groupId>
1414
<artifactId>console-backend</artifactId>
15-
<version>2.4.16</version>
15+
<version>2.4.17</version>
1616
</parent>
1717

1818
<properties>

electron/app/js/config-json.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* @license
3-
* Copyright (c) 2022, 2024, Oracle and/or its affiliates.
3+
* Copyright (c) 2022, 2025, Oracle and/or its affiliates.
44
* Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
55
* @ignore
66
*/
@@ -46,6 +46,7 @@ const AppConfig = (() => {
4646
if (settings.checkPpidMillis) _config['checkPpidMillis'] = settings.checkPpidMillis;
4747
if (settings.javaPath) _config['javaPath'] = `${settings.javaPath}`;
4848
if (settings.executablePath) _config['executableJar'] = `${_appPaths.exe}/${settings.executablePath}`;
49+
if (settings['weblogic.remoteconsole.java.startoptions']) _config['weblogic.remoteconsole.java.startoptions'] = `${settings['weblogic.remoteconsole.java.startoptions']}`;
4950
},
5051
read: () => {
5152
if (fs.existsSync(AppConfig.getPath())) {
@@ -60,6 +61,8 @@ const AppConfig = (() => {
6061
}
6162
catch(err) {
6263
log('error', err);
64+
const WindowManagement = require('./window-management');
65+
WindowManagement.corruptFile(AppConfig.getPath());
6366
}
6467
}
6568
},

electron/app/js/console-logger.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ const LoggingLevels = [
2020
let _logFilename;
2121
let _loggingLevel;
2222
let _isHeadlessMode;
23-
let _isStdoutErrorEpipe;
23+
let _isStdoutEnabled;
2424

2525
(function () {
2626
_loggingLevel = 'info';
2727
_isHeadlessMode = false;
28-
_isStdoutErrorEpipe = false;
28+
_isStdoutEnabled = false;
2929
const _error = console.error;
3030
const _warning = console.warning;
3131
const _debug = console.debug;
@@ -53,15 +53,15 @@ let _isStdoutErrorEpipe;
5353

5454
// Handle error on stdout and also prevent a dialog box when using console logging functions...
5555
process.stdout.on('error', function (error) {
56-
if (error.code == 'EPIPE') _isStdoutErrorEpipe = true;
56+
if (error.code == 'EPIPE') _isStdoutEnabled = false;
5757
const caller = _getCaller((new Error('StackLog')));
5858
const line = `${getLogEntryDateTime()} ${getLogEntryLevel('error')} ${caller} ${error}`;
5959
fs.appendFileSync(_logFilename, line + os.EOL);
6060
});
6161
})();
6262

6363
function _useConsoleLogging() {
64-
return (!_isHeadlessMode && !_isStdoutErrorEpipe);
64+
return (_isStdoutEnabled && !_isHeadlessMode);
6565
}
6666

6767
function initializeLog(options) {
@@ -179,6 +179,10 @@ function setOptions(options) {
179179
}
180180
}
181181

182+
function setStdoutEnabled() {
183+
_isStdoutEnabled = true;
184+
}
185+
182186
function rotateLog(options) {
183187
_logFilename = _rotateLogfile(options.appPaths.userData, options.baseFilename);
184188
if (options.loggingLevel) _loggingLevel = options.loggingLevel;
@@ -226,5 +230,6 @@ module.exports = {
226230
setLoggingLevel,
227231
getLoggingLevel,
228232
setOptions,
233+
setStdoutEnabled,
229234
rotateLog
230235
};

electron/app/js/project-management.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* @license
3-
* Copyright (c) 2022, 2023, Oracle and/or its affiliates.
3+
* Copyright (c) 2022, 2025, Oracle and/or its affiliates.
44
* Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
55
* @ignore
66
*/
@@ -357,7 +357,15 @@ const ProjectManagement = (() => {
357357
return result;
358358
},
359359
readProjects: (userDataPath) => {
360-
UserProjects.read(userDataPath);
360+
try {
361+
UserProjects.read(userDataPath);
362+
} catch(err) {
363+
log('error', `Cannot read project file: ${err}`);
364+
const WindowManagement = require('./window-management');
365+
WindowManagement.corruptFile(UserProjects.getPath(userDataPath));
366+
// The file is removed by corruptFile()
367+
UserProjects.read(userDataPath);
368+
}
361369
}
362370
};
363371

electron/app/js/settings-editor.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,13 @@ const SettingsEditor = (() => {
101101
else if (key === 'console.disableHostnameVerification') {
102102
preferences.value('networking.disableHostnameVerification', data[key]);
103103
}
104+
else if (key === 'weblogic.remoteconsole.java.startoptions') {
105+
const list = [];
106+
for (var entry of data[key].split(';')) {
107+
list.push(entry);
108+
}
109+
preferences.value('java.javaStartOptions', list);
110+
}
104111
else if (key === 'weblogic.remote-console-logging') {
105112
const list = [];
106113
for (var rule of data[key].split(';')) {
@@ -165,6 +172,16 @@ const SettingsEditor = (() => {
165172
data['weblogic.remote-console-logging'] += entry;
166173
}
167174
}
175+
const javaOptionsList = preferences.preferences?.java?.javaStartOptions;
176+
if (javaOptionsList) {
177+
for (var entry of javaOptionsList) {
178+
if (data['weblogic.remoteconsole.java.startoptions'])
179+
data['weblogic.remoteconsole.java.startoptions'] += ';';
180+
else
181+
data['weblogic.remoteconsole.java.startoptions'] = '';
182+
data['weblogic.remoteconsole.java.startoptions'] += entry;
183+
}
184+
}
168185
fs.writeFileSync(path, JSON.stringify(data, null, 4));
169186
decryptData(data);
170187
if (configSender)
@@ -446,6 +463,30 @@ const SettingsEditor = (() => {
446463
}
447464
]
448465
}
466+
},
467+
{
468+
id: 'java',
469+
label: `${I18NUtils.get('wrc-electron.menus.settings.section.java.label')}`,
470+
icon: 'preferences',
471+
form: {
472+
groups: [
473+
{
474+
'fields': [
475+
{
476+
label: `${I18NUtils.get('wrc-electron.menus.settings.java-options.label')}`,
477+
help: `${I18NUtils.get('wrc-electron.menus.settings.java-options.help')}`,
478+
key: 'javaStartOptions',
479+
type: 'list'
480+
},
481+
{
482+
type: 'button',
483+
key: 'save',
484+
buttonLabel: `${I18NUtils.get('wrc-electron.common.save')}`,
485+
}
486+
]
487+
}
488+
]
489+
}
449490
}]
450491
};
451492
preferences = new ElectronPreferences(preferencesTemplate);

electron/app/js/window-management.js

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const UserPrefs = require('./user-prefs-json');
1515
const SettingsEditor = require('./settings-editor');
1616
var supportsAutoUpgrades = false;
1717
var findString = '';
18+
const path = require('path');
1819

1920
/**
2021
* See {@link https://stackabuse.com/javascripts-immediately-invoked-function-expressions/}
@@ -35,6 +36,7 @@ const WindowManagement = (() => {
3536
// persisted in the auto-prefs.json file
3637
const AutoPrefs = require('./auto-prefs-json');
3738

39+
let corruption = [];
3840
let _window;
3941
let _params;
4042
let newVersion;
@@ -63,6 +65,25 @@ const WindowManagement = (() => {
6365
});
6466
}
6567

68+
function saveCorruption(filename, newfilename) {
69+
corruption.push({ 'filename': filename, 'newfilename': newfilename });
70+
}
71+
72+
function processSavedCorruption() {
73+
for (var corr of corruption) {
74+
showCorruption(corr.filename, corr.newfilename);
75+
}
76+
corruption = [];
77+
}
78+
79+
function showCorruption(filename, newfilename) {
80+
dialog.showMessageBoxSync(_window, {
81+
title: `${I18NUtils.get('wrc-electron.corrupt-file-title', path.basename(filename))}`,
82+
type: 'error',
83+
message: `${I18NUtils.get('wrc-electron.corrupt-file-message', filename, newfilename)}`
84+
});
85+
}
86+
6687
/**
6788
*
6889
* @private
@@ -756,7 +777,14 @@ const WindowManagement = (() => {
756777
});
757778
}
758779

759-
AutoPrefs.read(userDataPath);
780+
try {
781+
AutoPrefs.read(userDataPath);
782+
} catch(err) {
783+
log('error', `Cannot read auto preferences file: ${err}`);
784+
WindowManagement.corruptFile(AutoPrefs.getPath(userDataPath));
785+
// The file is removed by corruptFile()
786+
AutoPrefs.read(userDataPath);
787+
}
760788
AutoPrefs.set({
761789
version: params.version,
762790
location: (
@@ -785,6 +813,7 @@ const WindowManagement = (() => {
785813
_window = createBrowserWindow(title, AutoPrefs.get('width'), AutoPrefs.get('height'));
786814
_window.webContents.session.clearCache();
787815

816+
processSavedCorruption();
788817
_window.on('resize', () => {
789818
AutoPrefs.set({width: _window.getSize()[0], height: _window.getSize()[1]});
790819
AutoPrefs.write();
@@ -927,6 +956,16 @@ const WindowManagement = (() => {
927956
hideDockIconMacOS: () => {
928957
// Ensure the doc icon is hidden for MacOS
929958
if (OSUtils.isMacOS()) app.dock.hide();
959+
},
960+
corruptFile: (filename) => {
961+
let date = new Date();
962+
let newfilename = filename + "-corrupt-" + date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() + "-" + Math.floor(Math.random() * 10000);
963+
fs.rmSync(newfilename, { force: true } );
964+
fs.renameSync(filename, newfilename);
965+
if (!_window)
966+
saveCorruption(filename, newfilename);
967+
else
968+
showCorruption(filename, newfilename);
930969
}
931970
};
932971

0 commit comments

Comments
 (0)