Skip to content

Commit 83f614e

Browse files
authored
Merge pull request arquillian#354 from WolfgangHG/arquillian_glassfish_212
Testsuite: arquillian glassfish container has new groupId, Update to 2.1.2
2 parents 98972e2 + 23fba70 commit 83f614e

File tree

4 files changed

+42
-3
lines changed

4 files changed

+42
-3
lines changed

build/ftest-base/pom.xml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<properties>
1515
<version.shrinkwrap>1.2.6</version.shrinkwrap>
1616
<version.shrinkwrap.descriptors>2.0.0</version.shrinkwrap.descriptors>
17-
<version.arquillian.glassfish>1.8</version.arquillian.glassfish>
17+
<version.arquillian.glassfish>2.1.2</version.arquillian.glassfish>
1818

1919
<!-- Arquillian Configuration -->
2020
<arquillian.debug>false</arquillian.debug>
@@ -23,6 +23,8 @@
2323
<arquillian.container.home />
2424
<arquillian.container.distribution />
2525
<arquillian.container.configuration />
26+
<!-- Relative path to a file that should be made "executable" when the container is started by the arquillian container. -->
27+
<arquillian.container.linux.executepermission.file />
2628
<arquillian.container.uninstall>true</arquillian.container.uninstall>
2729
<arquillian.container.vmargs>-Xmx768m -Darquillian.debug=${arquillian.debug}
2830
</arquillian.container.vmargs>
@@ -230,6 +232,10 @@
230232
<arquillian.container.home>${project.build.directory}/glassfish7</arquillian.container.home>
231233
<arquillian.container.distribution>org.glassfish.main.distributions:glassfish:zip:${version.glassfish}
232234
</arquillian.container.distribution>
235+
<!-- Relative path to a file that should be made "executable" when the container is started by the arquillian container.
236+
Here it is the "asadmin" script (https://github.com/OmniFish-EE/arquillian-container-glassfish/pull/9) -->
237+
<arquillian.container.linux.executepermission.file>glassfish7/glassfish/bin/asadmin
238+
</arquillian.container.linux.executepermission.file>
233239
</properties>
234240

235241
<dependencies>
@@ -239,7 +245,7 @@
239245
so use a fork at https://github.com/OmniFish-EE/arquillian-container-glassfish <dependency>
240246
-->
241247
<dependency>
242-
<groupId>org.omnifaces.arquillian</groupId>
248+
<groupId>ee.omnifish.arquillian</groupId>
243249
<artifactId>arquillian-glassfish-server-managed</artifactId>
244250
<version>${version.arquillian.glassfish}</version>
245251
<scope>test</scope>
@@ -278,7 +284,7 @@
278284
</properties>
279285
<dependencies>
280286
<dependency>
281-
<groupId>org.omnifaces.arquillian</groupId>
287+
<groupId>ee.omnifish.arquillian</groupId>
282288
<artifactId>arquillian-glassfish-server-remote</artifactId>
283289
<version>${version.arquillian.glassfish}</version>
284290
<scope>test</scope>

build/resources/src/main/java/org/arquillian/warp/ftest/configuration/IntegrationTestConfiguration.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public class IntegrationTestConfiguration implements DroneConfiguration<Integrat
2727
private String containerHome;
2828
private String containerDistribution;
2929
private String containerConfiguration;
30+
private String containerLinuxExecutePermissionFile;
3031
private Boolean containerUninstall;
3132
private Boolean debug;
3233

@@ -53,6 +54,16 @@ public String getContainerHome() {
5354
return containerHome;
5455
}
5556

57+
/**
58+
* If the arquillian container adapter calls a launcher script for starting the container, this file must have the "execute" permisson on linux environments.
59+
* This property must contain the relative path (subdir of "containerConfiguration").
60+
*
61+
* @return Relative path to the file that should be marked as "executable" if the test environment is not Windows.
62+
*/
63+
public String getContainerLinuxExecutePermissionFile() {
64+
return containerLinuxExecutePermissionFile;
65+
}
66+
5667
/**
5768
* Set the flag that the container was installed from distribution
5869
*/

build/resources/src/main/java/org/arquillian/warp/ftest/installation/ContainerInstaller.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,25 @@ public void unpackContainerDistribution(@Observes InstallContainer event) {
8080
log.info(String.format("The container distribution '%s' was installed into '%s'", distribution,
8181
unpackDestination.getAbsolutePath()));
8282

83+
// If we are running on a linux environment, maybe a launcher script that is required by the arquillian container plugin must be executable.
84+
String launcherScript = configuration.get().getContainerLinuxExecutePermissionFile();
85+
if (launcherScript != null && launcherScript.trim().length() > 0) {
86+
// Do this only on non-Windows-OS.
87+
if (!System.getProperty("os.name").toLowerCase().startsWith("windows")) {
88+
File fileAsadmin = new File(unpackDestination.getAbsolutePath(), launcherScript);
89+
if (fileAsadmin.exists()) {
90+
log.info(String.format("Preparing container: setting execute permisson for '%s'.", fileAsadmin.getAbsoluteFile()));
91+
fileAsadmin.setExecutable(true);
92+
}
93+
else {
94+
log.warning(String.format("Wrong configuration: Could not find file '%s'.", fileAsadmin.getAbsoluteFile()));
95+
}
96+
}
97+
else {
98+
log.info("Preparing container: No linux environment, skipping step.");
99+
}
100+
}
101+
83102
if (!containerHome.exists()) {
84103
throw new IllegalStateException(String.format(
85104
"The container distribution was unpacked but the containerHome (%s) still doesn't exist", containerHome));

build/resources/src/main/resources/arquillian.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@
6666
<property name="containerConfiguration">${arquillian.container.configuration}</property>
6767
<!-- true if the container should be uninstalled after test when it was installed from distribution -->
6868
<property name="containerUninstall">${arquillian.container.uninstall}</property>
69+
<!-- If the arquillian container adapter calls a launcher script for starting the container, this file must have the "execute" permisson on linux environments.
70+
Configure the path relative to the subdir of "arquillian.container.configuration". -->
71+
<property name="containerLinuxExecutePermissionFile">${arquillian.container.linux.executepermission.file}</property>
6972
</extension>
7073

7174
</arquillian>

0 commit comments

Comments
 (0)