@@ -4,10 +4,24 @@ import { SDKSupportedLanguage } from "./types.js";
4
4
// Framework mapping for Java Maven archetype generation
5
5
const JAVA_FRAMEWORK_MAP : Record < string , string > = {
6
6
testng : "testng" ,
7
- junit : "junit5" , // Map generic junit to junit5 as default
8
- cucumber : "cucumber-testng" , // Map generic cucumber to cucumber-testng as default
7
+ junit5 : "junit5" ,
8
+ junit4 : "junit4" ,
9
+ cucumber : "cucumber-testng" ,
9
10
} ;
10
11
12
+ // Common Gradle setup instructions (platform-independent)
13
+ const GRADLE_SETUP_INSTRUCTIONS = `
14
+ **For Gradle setup:**
15
+ 1. Add browserstack-java-sdk to dependencies:
16
+ compileOnly 'com.browserstack:browserstack-java-sdk:latest.release'
17
+
18
+ 2. Add browserstackSDK path variable:
19
+ def browserstackSDKArtifact = configurations.compileClasspath.resolvedConfiguration.resolvedArtifacts.find { it.name == 'browserstack-java-sdk' }
20
+
21
+ 3. Add javaagent to gradle tasks:
22
+ jvmArgs "-javaagent:\${browserstackSDKArtifact.file}"
23
+ ` ;
24
+
11
25
export function getSDKPrefixCommand (
12
26
language : SDKSupportedLanguage ,
13
27
framework : string ,
@@ -18,26 +32,25 @@ export function getSDKPrefixCommand(
18
32
19
33
case "java" : {
20
34
const mavenFramework = getJavaFrameworkForMaven ( framework ) ;
21
- return `Install BrowserStack Java SDK
35
+ const isWindows = process . platform === "win32" ;
22
36
23
- **Maven command for ${ framework } :**
24
- Run the command, it is required to generate the browserstack- sdk-archetype-integrate project:
25
- mvn archetype:generate -B -DarchetypeGroupId=com.browserstack \\
37
+ const mavenCommand = isWindows
38
+ ? `mvn archetype: generate -B -DarchetypeGroupId="com. browserstack" -DarchetypeArtifactId="browserstack- sdk-archetype-integrate" -DarchetypeVersion="1.0" -DgroupId="com.browserstack" -DartifactId="browserstack-sdk-archetype-integrate" -Dversion="1.0" -DBROWSERSTACK_USERNAME=" ${ process . env . BROWSERSTACK_USERNAME } " -DBROWSERSTACK_ACCESS_KEY=" ${ process . env . BROWSERSTACK_ACCESS_KEY } " -DBROWSERSTACK_FRAMEWORK=" ${ mavenFramework } "`
39
+ : ` mvn archetype:generate -B -DarchetypeGroupId=com.browserstack \\
26
40
-DarchetypeArtifactId=browserstack-sdk-archetype-integrate -DarchetypeVersion=1.0 \\
27
41
-DgroupId=com.browserstack -DartifactId=browserstack-sdk-archetype-integrate -Dversion=1.0 \\
28
- -DBROWSERSTACK_USERNAME=${ process . env . BROWSERSTACK_USERNAME } -DBROWSERSTACK_ACCESS_KEY=${ process . env . BROWSERSTACK_ACCESS_KEY } \\
29
- -DBROWSERSTACK_FRAMEWORK=${ mavenFramework }
42
+ -DBROWSERSTACK_USERNAME="${ process . env . BROWSERSTACK_USERNAME } " \\
43
+ -DBROWSERSTACK_ACCESS_KEY="${ process . env . BROWSERSTACK_ACCESS_KEY } " \\
44
+ -DBROWSERSTACK_FRAMEWORK="${ mavenFramework } "` ;
30
45
31
- **For Gradle setup:**
32
- 1. Add browserstack-java-sdk to dependencies:
33
- compileOnly 'com.browserstack:browserstack-java-sdk:latest.release'
46
+ const platformLabel = isWindows ? "Windows" : "macOS/Linux" ;
34
47
35
- 2. Add browserstackSDK path variable:
36
- def browserstackSDKArtifact = configurations.compileClasspath.resolvedConfiguration.resolvedArtifacts.find { it.name == 'browserstack-java-sdk' }
48
+ return `Install BrowserStack Java SDK
37
49
38
- 3. Add javaagent to gradle tasks:
39
- jvmArgs "-javaagent:\${browserstackSDKArtifact.file}"
40
- ` ;
50
+ **Maven command for ${ framework } (${ platformLabel } ):**
51
+ Run the command, it is required to generate the browserstack-sdk-archetype-integrate project:
52
+ ${ mavenCommand }
53
+ ${ GRADLE_SETUP_INSTRUCTIONS } `;
41
54
}
42
55
43
56
// Add more languages as needed
0 commit comments