Skip to content

Commit

Permalink
Merge pull request wildfly#18639 from rhusar/WFLY-20254
Browse files Browse the repository at this point in the history
WFLY-20254 MP OpenAPI TCK is never run with the security manager
  • Loading branch information
bstansberry authored Jan 11, 2025
2 parents b220d21 + 3acfa29 commit 75e6fcf
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
*/
package org.wildfly.extension.microprofile.openapi.tck;

import static org.wildfly.testing.tools.deployments.DeploymentDescriptors.createPermissionsXmlAsset;

import java.lang.reflect.ReflectPermission;
import java.util.PropertyPermission;

import org.hamcrest.Matchers;
import org.hamcrest.collection.IsEmptyCollection;
import org.hamcrest.core.IsEqual;
Expand All @@ -12,23 +17,36 @@
import org.jboss.arquillian.test.spi.TestClass;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.container.ManifestContainer;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.jboss.shrinkwrap.api.spec.WebArchive;

public class DeploymentProcessor implements ApplicationArchiveProcessor {

@Override
public void process(Archive<?> archive, TestClass testClass) {
if (archive instanceof WebArchive) {
public void process(Archive<?> applicationArchive, TestClass testClass) {
if (applicationArchive instanceof WebArchive) {
JavaArchive extensionsJar = ShrinkWrap.create(JavaArchive.class, "extension.jar");

extensionsJar.addPackage(Matchers.class.getPackage());
extensionsJar.addPackage(IsEmptyCollection.class.getPackage());
extensionsJar.addPackage(IsEqual.class.getPackage());
extensionsJar.addPackage(ReflectiveTypeFinder.class.getPackage());

WebArchive war = WebArchive.class.cast(archive);
WebArchive war = (WebArchive) applicationArchive;
war.addAsLibraries(extensionsJar);
}

if (applicationArchive instanceof ManifestContainer<?>) {
ManifestContainer<?> manifestContainer = (ManifestContainer<?>) applicationArchive;

// Enable running the TCK with the security manager
manifestContainer.addAsManifestResource(createPermissionsXmlAsset(
// Permissions required by test instrumentation - arquillian-core.jar and arquillian-testng.jar
new ReflectPermission("suppressAccessChecks"),
new PropertyPermission("*", "read"),
new RuntimePermission("accessDeclaredMembers")
), "permissions.xml");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@
-->

<arquillian xmlns="http://jboss.org/schema/arquillian" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">

<defaultProtocol type="jmx-as7" />
<defaultProtocol type="jmx-as7"/>

<container qualifier="jboss" default="true">
<configuration>
<property name="allowConnectingToRunningServer">true</property>
<property name="installDir">${install.dir}</property>
<property name="jarFile">${bootable.jar}</property>

<property name="javaVmArguments">${microprofile.jvm.args}</property>
<property name="jbossArguments">${jboss.args}</property>
<property name="managementAddress">127.0.0.1</property>
<property name="managementPort">9990</property>
<property name="allowConnectingToRunningServer">true</property>
<property name="waitForPorts">9990</property>
<property name="waitForPortsTimeoutInSeconds">10</property>
</configuration>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,18 @@
<arquillian xmlns="http://jboss.org/schema/arquillian" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">

<container qualifier="jboss" default="true" >
<container qualifier="jboss" default="true">
<configuration>
<property name="jbossHome">${jboss.home}</property>
<property name="allowConnectingToRunningServer">true</property>
<property name="javaHome">${container.java.home}</property>
<property name="javaVmArguments">${microprofile.jvm.args}</property>
<property name="serverConfig">standalone-microprofile.xml</property>
<property name="jbossArguments">${jboss.args}</property>
<property name="jbossHome">${jboss.home}</property>
<property name="managementAddress">127.0.0.1</property>
<property name="managementPort">9990</property>
<property name="allowConnectingToRunningServer">true</property>
<property name="serverConfig">standalone-microprofile.xml</property>
<property name="waitForPorts">9990</property>
<property name="waitForPortsTimeoutInSeconds">10</property>
<property name="javaHome">${container.java.home}</property>
</configuration>
</container>
</arquillian>

0 comments on commit 75e6fcf

Please sign in to comment.