Skip to content

Commit 7566b37

Browse files
committed
Java Adjustments
1 parent bca14ea commit 7566b37

File tree

1 file changed

+65
-19
lines changed
  • src/tools/appautomate-utils/appium-sdk/languages

1 file changed

+65
-19
lines changed

src/tools/appautomate-utils/appium-sdk/languages/java.ts

Lines changed: 65 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,32 @@ export const MAVEN_ARCHETYPE_GROUP_ID = "com.browserstack";
1111
export const MAVEN_ARCHETYPE_ARTIFACT_ID = "junit-archetype-integrate";
1212
export const MAVEN_ARCHETYPE_VERSION = "1.0";
1313

14+
// Version mapping for different frameworks
15+
export const JAVA_APP_FRAMEWORK_VERSION_MAP: Record<string, string> = {
16+
testng: "1.4",
17+
selenide: "1.4",
18+
junit5: "1.0",
19+
junit4: "1.0",
20+
jbehave: "1.0",
21+
cucumberTestng: "1.0",
22+
cucumberJunit4: "1.0",
23+
cucumberJunit5: "1.0",
24+
cucumber: "1.0",
25+
serenity: "1.0",
26+
};
27+
1428
// Framework mapping for Java Maven archetype generation for App Automate
1529
export const JAVA_APP_FRAMEWORK_MAP: Record<string, string> = {
16-
testng: "browserstack-sdk-archetype-integrate",
30+
testng: "testng-archetype-integrate",
1731
junit5: "browserstack-sdk-archetype-integrate",
1832
selenide: "selenide-archetype-integrate",
1933
jbehave: "browserstack-sdk-archetype-integrate",
34+
junit4: "browserstack-sdk-archetype-integrate",
2035
cucumberTestng: "browserstack-sdk-archetype-integrate",
2136
cucumberJunit4: "browserstack-sdk-archetype-integrate",
2237
cucumberJunit5: "browserstack-sdk-archetype-integrate",
38+
cucumber: "browserstack-sdk-archetype-integrate",
39+
serenity: "browserstack-sdk-archetype-integrate",
2340
};
2441

2542
// Common Gradle setup instructions for App Automate (platform-independent)
@@ -49,44 +66,74 @@ export function getJavaAppFrameworkForMaven(framework: string): string {
4966
return JAVA_APP_FRAMEWORK_MAP[framework] || framework;
5067
}
5168

69+
export function getJavaAppFrameworkVersion(framework: string): string {
70+
return JAVA_APP_FRAMEWORK_VERSION_MAP[framework] || MAVEN_ARCHETYPE_VERSION;
71+
}
72+
5273
function getMavenCommandForWindows(
5374
framework: string,
5475
mavenFramework: string,
76+
version: string,
5577
username: string,
5678
accessKey: string,
79+
appPath?: string,
5780
): string {
58-
return (
81+
let command = (
5982
`mvn archetype:generate -B ` +
6083
`-DarchetypeGroupId="${MAVEN_ARCHETYPE_GROUP_ID}" ` +
6184
`-DarchetypeArtifactId="${mavenFramework}" ` +
62-
`-DarchetypeVersion="${MAVEN_ARCHETYPE_VERSION}" ` +
85+
`-DarchetypeVersion="${version}" ` +
6386
`-DgroupId="${MAVEN_ARCHETYPE_GROUP_ID}" ` +
64-
`-DartifactId="${MAVEN_ARCHETYPE_ARTIFACT_ID}" ` +
65-
`-Dversion="${MAVEN_ARCHETYPE_VERSION}" ` +
87+
`-DartifactId="${mavenFramework}" ` +
88+
`-Dversion="${version}" ` +
6689
`-DBROWSERSTACK_USERNAME="${username}" ` +
67-
`-DBROWSERSTACK_ACCESS_KEY="${accessKey}" ` +
68-
`-DBROWSERSTACK_FRAMEWORK="${framework}"`
90+
`-DBROWSERSTACK_ACCESS_KEY="${accessKey}"`
6991
);
92+
93+
// Add framework parameter for browserstack-sdk-archetype-integrate
94+
if (mavenFramework === "browserstack-sdk-archetype-integrate") {
95+
command += ` -DBROWSERSTACK_FRAMEWORK="${framework}"`;
96+
}
97+
98+
// Add app path if provided
99+
if (appPath) {
100+
command += ` -DBROWSERSTACK_APP="${appPath}"`;
101+
}
102+
103+
return command;
70104
}
71105

72106
function getMavenCommandForUnix(
73107
framework: string,
74108
mavenFramework: string,
109+
version: string,
75110
username: string,
76111
accessKey: string,
112+
appPath?: string,
77113
): string {
78-
return (
114+
let command = (
79115
`mvn archetype:generate -B ` +
80116
`-DarchetypeGroupId="${MAVEN_ARCHETYPE_GROUP_ID}" ` +
81117
`-DarchetypeArtifactId="${mavenFramework}" ` +
82-
`-DarchetypeVersion="${MAVEN_ARCHETYPE_VERSION}" ` +
118+
`-DarchetypeVersion="${version}" ` +
83119
`-DgroupId="${MAVEN_ARCHETYPE_GROUP_ID}" ` +
84-
`-DartifactId="${MAVEN_ARCHETYPE_ARTIFACT_ID}" ` +
85-
`-Dversion="${MAVEN_ARCHETYPE_VERSION}" ` +
120+
`-DartifactId="${mavenFramework}" ` +
121+
`-Dversion="${version}" ` +
86122
`-DBROWSERSTACK_USERNAME="${username}" ` +
87-
`-DBROWSERSTACK_ACCESS_KEY="${accessKey}" ` +
88-
`-DBROWSERSTACK_FRAMEWORK="${framework}"`
123+
`-DBROWSERSTACK_ACCESS_KEY="${accessKey}"`
89124
);
125+
126+
// Add framework parameter for browserstack-sdk-archetype-integrate
127+
if (mavenFramework === "browserstack-sdk-archetype-integrate") {
128+
command += ` -DBROWSERSTACK_FRAMEWORK="${framework}"`;
129+
}
130+
131+
// Add app path if provided
132+
if (appPath) {
133+
command += ` -DBROWSERSTACK_APP="${appPath}"`;
134+
}
135+
136+
return command;
90137
}
91138

92139
export function getJavaSDKCommand(
@@ -98,29 +145,28 @@ export function getJavaSDKCommand(
98145
const { isWindows = false, getPlatformLabel } = PLATFORM_UTILS || {};
99146

100147
const mavenFramework = getJavaAppFrameworkForMaven(framework);
148+
const version = getJavaAppFrameworkVersion(framework);
101149

102150
let mavenCommand: string;
103151

104152
if (isWindows) {
105153
mavenCommand = getMavenCommandForWindows(
106154
framework,
107155
mavenFramework,
156+
version,
108157
username,
109158
accessKey,
159+
appPath,
110160
);
111-
if (appPath) {
112-
mavenCommand += ` -DBROWSERSTACK_APP="${appPath}"`;
113-
}
114161
} else {
115162
mavenCommand = getMavenCommandForUnix(
116163
framework,
117164
mavenFramework,
165+
version,
118166
username,
119167
accessKey,
168+
appPath,
120169
);
121-
if (appPath) {
122-
mavenCommand += ` -DBROWSERSTACK_APP="${appPath}"`;
123-
}
124170
}
125171

126172
const envStep = createEnvStep(

0 commit comments

Comments
 (0)