Skip to content

Commit

Permalink
improve build and test run
Browse files Browse the repository at this point in the history
Signed-off-by: OlegDokuka <oleh@moderne.io>
  • Loading branch information
OlegDokuka committed Oct 15, 2024
1 parent e4b7b29 commit 254331a
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 32 deletions.
26 changes: 9 additions & 17 deletions openrewrite/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion openrewrite/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,11 @@
"dev": "tsc --watch -p tsconfig.json",
"test": "jest"
},
"overrides": {
"@openrewrite/rewrite": "../_EXCLUDED_"
},
"dependencies": {
"@openrewrite/rewrite-remote": "^0.3.10",
"@openrewrite/rewrite-remote": "^0.4.0",
"@jsonjoy.com/json-pack": "^1.1.0",
"@types/node": "^22.5.4",
"cbor": "^9.0.2",
Expand Down
5 changes: 5 additions & 0 deletions openrewrite/src/java/remote/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// import for side-effects
import './register';

export * from './receiver';
export * from './sender';
5 changes: 5 additions & 0 deletions openrewrite/src/javascript/remote/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// import for side-effects
import './register';

export * from './receiver';
export * from './sender';
46 changes: 32 additions & 14 deletions openrewrite/test/javascript/testHarness.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// for side-effects (`java` must come after `javascript`)
import "@openrewrite/rewrite-remote/javascript";
import "@openrewrite/rewrite-remote/java";
import "../../dist/src/javascript/remote";
import "../../dist/src/java/remote";

import {
Cursor,
Expand All @@ -19,6 +19,8 @@ import dedent from "dedent";
import {RemotePrinterFactory, RemotingContext} from "@openrewrite/rewrite-remote";
import net from "net";
import {JavaScriptParser, JavaScriptVisitor} from "../../dist/src/javascript";
import {spawn} from "node:child_process";
import path from "node:path";

export interface RewriteTestOptions {
normalizeIndent?: boolean
Expand All @@ -33,19 +35,35 @@ let remoting: RemotingContext;

export async function connect(): Promise<RemotingContext> {
return new Promise((resolve, reject) => {
client = new net.Socket();
client.connect(65432, 'localhost');

client.once('error', (err) => reject(err));
client.once('connect', () => {
remoting = new RemotingContext();
remoting.connect(client);
PrinterFactory.current = new RemotePrinterFactory(remoting.client!);
resolve(remoting);
const pathToJar = path.resolve(__dirname, '../../../rewrite-test-engine-remote/build/libs/rewrite-test-engine-remote-*.jar');
console.log(pathToJar);
const javaTestEngine = spawn('java', ['-jar', pathToJar]);
const startfn = (data : string) => {
console.log(`stdout: ${data}`);
client = new net.Socket();
client.connect(65432, 'localhost');

client.once('error', (err) => reject(err));
client.once('connect', () => {
remoting = new RemotingContext();
remoting.connect(client);
PrinterFactory.current = new RemotePrinterFactory(remoting.client!);
resolve(remoting);
});
client.setTimeout(10000, () => {
client.destroy();
reject(new Error('Connection timed out'));
});
javaTestEngine.stdout.off('data', startfn)
}

javaTestEngine.stdout.on('data', startfn);
javaTestEngine.stderr.on('data', (data: string) => {
console.error(`stderr: ${data}`);
});
client.setTimeout(10000, () => {
client.destroy();
reject(new Error('Connection timed out'));

javaTestEngine.on('close', (code: string) => {
console.log(`child process exited with code ${code}`);
});
});
}
Expand Down
14 changes: 14 additions & 0 deletions rewrite-test-engine-remote/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,20 @@ tasks.withType<Javadoc>().configureEach {
enabled = false
}

tasks.register<Jar>("fatJar") {
manifest {
attributes(
"Main-Class" to "org.openrewrite.remote.java.RemotingServer"
)
}
from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) })
dependsOn(configurations.runtimeClasspath)
}

tasks.named("startScripts").configure {
dependsOn(":rewrite-test-engine-remote:fatJar")
}

tasks.named<Jar>("sourcesJar") {
enabled = false
}
Expand Down

0 comments on commit 254331a

Please sign in to comment.