-
Bug
-
Resolution: Done
-
Blocker
-
7.2.3.CR1
-
-
-
-
-
-
- Clone 4.8.x branch of the keycloak-prod repo
- Invoke mvn clean install -P'product,!community,jboss-release' -DskipTests -s maven-settings.xml
- Maven settings need to point to Indy
Problem
During the RHSSO build, we noticed a failure with the following error:
Failed to execute goal org.wildfly.build:wildfly-server-provisioning-maven-plugin:1.2.10.Final:build (server-provisioning) on project keycloak-server-dist: Execution server-provisioning of goal org.wildfly.build:wildfly-server-provisioning-maven-plugin:1.2.10.Final:build failed: java.lang.RuntimeException: java.lang.RuntimeException: failed to resolve artifact org.apache.activemq:libartemis-native-32:jar:so: Could not find artifact org.apache.activemq:libartemis-native-32:jar:so in indy-mvn (http://indy.newcastle.svc.cluster.local/api/folo/track/build-25138/maven/group/build-25138)
The RHSSO Feature Pack depends on EAP's (org.jboss.eap:wildfly-feature-pack). So during the build, the Wildfly Provisioning Plugin pulls it and adds RHSSO bits on top of EAP. We noticed, that the problem is located in this two lines of wildfly-feature-pack.xml:
<copy-artifact artifact="org.apache.activemq:libartemis-native-32:::so" to-location="modules/system/layers/base/org/apache/activemq/artemis/journal/main/lib/linux-i686/libartemis-native-32.so"/> <copy-artifact artifact="org.apache.activemq:libartemis-native-64:::so" to-location="modules/system/layers/base/org/apache/activemq/artemis/journal/main/lib/linux-x86_64/libartemis-native-64.so"/>
Solution
I experimented with the wildfly-feature-pack.xml (by changing it in my local Maven repository) and I managed to get this working by adding:
<artifact groupId="org.apache.activemq" artifactId="libartemis-native-64" version="1.0.0_00003-redhat-1" extension="so"/> <artifact groupId="org.apache.activemq" artifactId="libartemis-native-32" version="1.0.0_00003-redhat-1" extension="so"/>
to the artifact-versions section as well as modifying the copy-artifact sections to (be careful and count : characters):
<copy-artifact artifact="org.apache.activemq:libartemis-native-32:so" to-location="modules/system/layers/base/org/apache/activemq/artemis/journal/main/lib/linux-i686/libartemis-native-32.so"/> <copy-artifact artifact="org.apache.activemq:libartemis-native-64:so" to-location="modules/system/layers/base/org/apache/activemq/artemis/journal/main/lib/linux-x86_64/libartemis-native-64.so"/>
Explanation
The first part is pretty simple, the Server Provisioning tool needs to know the *.so files version. The second part is a bit more tricky. The Server Provisioning tool uses the following artifact syntax: groupId:artifactId[:packaging[:classifier[:version]]]. This means, that so packaging type needs to be right after artifactId. See this piece of the code.
- is caused by
-
JBEAP-16606 (7.2.z) Upgrade Artemis from 2.6.3.redhat-00020 to 2.7.0.redhat-00057
- Closed
- is cloned by
-
JBEAP-17217 (7.3) Wildfly Feature Pack needs adjustments for libartemis-native-*
- Closed