Skip to content

Commit d7e9c18

Browse files
committed
Reset ServerComponent when disconnecting
Signed-off-by: Seb Julliand <[email protected]>
1 parent a188a4a commit d7e9c18

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

src/connection/serverComponent.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ export class ServerComponent {
8686
return this.installed;
8787
}
8888

89+
static reset(){
90+
this.installed = false;
91+
}
92+
8993
static async isAlreadyInstalled() {
9094
const instance = getInstance();
9195
const connection = instance.getConnection();
@@ -233,7 +237,7 @@ async function compareMD5Hash(connection: IBMi, local: string, remote: string) {
233237

234238
const remoteMD5Result = (await connection.sendCommand({ command: `${connection.remoteFeatures.md5sum} ${remote}` }));
235239
if (remoteMD5Result.code === 0) {
236-
return localMD5 === remoteMD5Result.stdout.split(/\s+/).at(0);
240+
return localMD5 === remoteMD5Result.stdout.split(/\s+/)[0];
237241
}
238242
else {
239243
ServerComponent.writeOutput(JSON.stringify(remoteMD5Result));

src/extension.ts

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
// The module 'vscode' contains the VS Code extensibility API
22
// Import the module and reference it with the alias vscode in your code below
3-
import vscode from "vscode"
3+
import vscode from "vscode";
44
import schemaBrowser from "./views/schemaBrowser";
55

66
import * as JSONServices from "./language/json";
77
import * as resultsProvider from "./views/results";
88

9+
import { JDBCOptions } from "@ibm/mapepire-js/dist/src/types";
910
import { getInstance, loadBase } from "./base";
10-
import { JobManager, onConnectOrServerInstall, initConfig } from "./config";
11-
import { queryHistory } from "./views/queryHistoryView";
12-
import { ExampleBrowser } from "./views/examples/exampleBrowser";
13-
import { languageInit } from "./language/providers";
14-
import { initialiseTestSuite } from "./testing";
15-
import { JobManagerView } from "./views/jobManager/jobManagerView";
16-
import { ServerComponent } from "./connection/serverComponent";
11+
import { JobManager, initConfig, onConnectOrServerInstall } from "./config";
12+
import Configuration from "./configuration";
1713
import { SQLJobManager } from "./connection/manager";
14+
import { ServerComponent } from "./connection/serverComponent";
1815
import { OldSQLJob } from "./connection/sqlJob";
16+
import { languageInit } from "./language/providers";
17+
import { DbCache } from "./language/providers/logic/cache";
1918
import { notebookInit } from "./notebooks/IBMiSerializer";
20-
import { SelfTreeDecorationProvider, selfCodesResultsView } from "./views/jobManager/selfCodes/selfCodesResultsView";
21-
import Configuration from "./configuration";
22-
import { JDBCOptions } from "@ibm/mapepire-js/dist/src/types";
19+
import { initialiseTestSuite } from "./testing";
2320
import { Db2iUriHandler, getStatementUri } from "./uriHandler";
24-
import { DbCache } from "./language/providers/logic/cache";
21+
import { ExampleBrowser } from "./views/examples/exampleBrowser";
22+
import { JobManagerView } from "./views/jobManager/jobManagerView";
23+
import { SelfTreeDecorationProvider, selfCodesResultsView } from "./views/jobManager/selfCodes/selfCodesResultsView";
24+
import { queryHistory } from "./views/queryHistoryView";
2525

2626
export interface Db2i {
2727
sqlJobManager: SQLJobManager,
@@ -32,7 +32,7 @@ export interface Db2i {
3232
// your extension is activated the very first time the command is executed
3333

3434
export function activate(context: vscode.ExtensionContext): Db2i {
35-
35+
3636
// Use the console to output diagnostic information (console.log) and errors (console.error)
3737
// This line of code will only be executed once when your extension is activated
3838
console.log(`Congratulations, your extension "vscode-db2i" is now active!`);
@@ -80,7 +80,7 @@ export function activate(context: vscode.ExtensionContext): Db2i {
8080

8181
console.log(`Developer environment: ${process.env.DEV}`);
8282
const devMode = process.env.DEV !== undefined;
83-
let runTests: Function|undefined;
83+
let runTests: Function | undefined;
8484
if (devMode) {
8585
// Run tests if not in production build
8686
runTests = initialiseTestSuite(context);
@@ -103,6 +103,8 @@ export function activate(context: vscode.ExtensionContext): Db2i {
103103
});
104104
});
105105

106+
instance.subscribe(context, `disconnected`, `db2i-disconnected`, () => ServerComponent.reset());
107+
106108
return { sqlJobManager: JobManager, sqlJob: (options?: JDBCOptions) => new OldSQLJob(options) };
107109
}
108110

0 commit comments

Comments
 (0)