You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2026/06/22 13:51:32 UTC

(karaf) branch main updated: Add retry on wrapper resources download (#2728)

This is an automated email from the ASF dual-hosted git repository.

jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/karaf.git


The following commit(s) were added to refs/heads/main by this push:
     new 4498c365ad Add retry on wrapper resources download (#2728)
4498c365ad is described below

commit 4498c365ad12ccf99379ca4ab5f0a272b2a6f7d8
Author: JB Onofré <jb...@apache.org>
AuthorDate: Mon Jun 22 15:51:26 2026 +0200

    Add retry on wrapper resources download (#2728)
    
    * Add retry on wrapper resources download
    
    * Make wrapper native library downloads non-fatal when unreachable
    
    download.tanukisoftware.com intermittently rejects CI/cloud egress IPs
    with HTTP 403, which retries alone cannot recover since the error is not
    transient. Mark each Tanuki download as ignoreerrors and guard its
    extraction with <available> (ant-contrib <if>), so a blocked archive is
    skipped with a warning instead of aborting the wrapper.core build. The
    bundle then omits only the native libraries that could not be downloaded.
---
 wrapper/pom.xml | 176 +++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 116 insertions(+), 60 deletions(-)

diff --git a/wrapper/pom.xml b/wrapper/pom.xml
index 17fe621b02..9e21431d36 100644
--- a/wrapper/pom.xml
+++ b/wrapper/pom.xml
@@ -112,75 +112,131 @@
                         </goals>
                         <configuration>
                             <target>
+                                <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="maven.plugin.classpath" />
+                                <!-- The Tanuki native libraries below are fetched from download.tanukisoftware.com,
+                                     which intermittently rejects CI/cloud egress IPs (HTTP 403). Each download is
+                                     made non-fatal (ignoreerrors) and its extraction guarded by <available>, so a
+                                     blocked archive is skipped with a warning instead of failing the whole build.
+                                     The resulting bundle then omits the native libs that could not be downloaded. -->
                                 <!-- AIX PPC 32 -->
-                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-aix-ppc-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-aix-ppc-32-3.2.3.tar.gz" />
-                                <gunzip src="${project.build.directory}/wrapper-aix-ppc-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-aix-ppc-32-3.2.3.tar" />
-                                <untar src="${project.build.directory}/wrapper-aix-ppc-32-3.2.3.tar" dest="${project.build.directory}" />
-                                <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/aix/ppc32" />
-                                <copy file="${project.build.directory}/wrapper-aix-ppc-32-3.2.3/lib/libwrapper.a" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/aix/ppc32/libwrapper.a" />
-                                <copy file="${project.build.directory}/wrapper-aix-ppc-32-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/aix/ppc32/karaf-wrapper" />
+                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-aix-ppc-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-aix-ppc-32-3.2.3.tar.gz" retries="5" skipexisting="true" maxtime="300" ignoreerrors="true" />
+                                <if>
+                                    <available file="${project.build.directory}/wrapper-aix-ppc-32-3.2.3.tar.gz" />
+                                    <then>
+                                        <gunzip src="${project.build.directory}/wrapper-aix-ppc-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-aix-ppc-32-3.2.3.tar" />
+                                        <untar src="${project.build.directory}/wrapper-aix-ppc-32-3.2.3.tar" dest="${project.build.directory}" />
+                                        <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/aix/ppc32" />
+                                        <copy file="${project.build.directory}/wrapper-aix-ppc-32-3.2.3/lib/libwrapper.a" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/aix/ppc32/libwrapper.a" />
+                                        <copy file="${project.build.directory}/wrapper-aix-ppc-32-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/aix/ppc32/karaf-wrapper" />
+                                    </then>
+                                </if>
                                 <!-- AIX PPC 64 -->
-                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-aix-ppc-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-aix-ppc-64-3.2.3.tar.gz" />
-                                <gunzip src="${project.build.directory}/wrapper-aix-ppc-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-aix-ppc-64-3.2.3.tar" />
-                                <untar src="${project.build.directory}/wrapper-aix-ppc-64-3.2.3.tar" dest="${project.build.directory}" />
-                                <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/aix/ppc64" />
-                                <copy file="${project.build.directory}/wrapper-aix-ppc-64-3.2.3/lib/libwrapper.a" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/aix/ppc64/libwrapper.a" />
-                                <copy file="${project.build.directory}/wrapper-aix-ppc-64-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/aix/ppc64/karaf-wrapper" />
+                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-aix-ppc-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-aix-ppc-64-3.2.3.tar.gz" retries="5" skipexisting="true" maxtime="300" ignoreerrors="true" />
+                                <if>
+                                    <available file="${project.build.directory}/wrapper-aix-ppc-64-3.2.3.tar.gz" />
+                                    <then>
+                                        <gunzip src="${project.build.directory}/wrapper-aix-ppc-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-aix-ppc-64-3.2.3.tar" />
+                                        <untar src="${project.build.directory}/wrapper-aix-ppc-64-3.2.3.tar" dest="${project.build.directory}" />
+                                        <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/aix/ppc64" />
+                                        <copy file="${project.build.directory}/wrapper-aix-ppc-64-3.2.3/lib/libwrapper.a" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/aix/ppc64/libwrapper.a" />
+                                        <copy file="${project.build.directory}/wrapper-aix-ppc-64-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/aix/ppc64/karaf-wrapper" />
+                                    </then>
+                                </if>
                                 <!-- HPUX PARISC 64 -->
-                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-hpux-parisc-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3.tar.gz" />
-                                <gunzip src="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3.tar" />
-                                <untar src="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3.tar" dest="${project.build.directory}" />
-                                <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/hpux/parisc64" />
-                                <copy file="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3/lib/libwrapper.sl" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/hpux/parisc64/libwrapper.sl" />
-                                <copy file="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/hpux/parisc64/karaf-wrapper" />
+                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-hpux-parisc-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3.tar.gz" retries="5" skipexisting="true" maxtime="300" ignoreerrors="true" />
+                                <if>
+                                    <available file="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3.tar.gz" />
+                                    <then>
+                                        <gunzip src="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3.tar" />
+                                        <untar src="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3.tar" dest="${project.build.directory}" />
+                                        <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/hpux/parisc64" />
+                                        <copy file="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3/lib/libwrapper.sl" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/hpux/parisc64/libwrapper.sl" />
+                                        <copy file="${project.build.directory}/wrapper-hpux-parisc-64-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/hpux/parisc64/karaf-wrapper" />
+                                    </then>
+                                </if>
                                 <!-- Linux x86 32 -->
-                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-linux-x86-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-linux-x86-32-3.2.3.tar.gz" />
-                                <gunzip src="${project.build.directory}/wrapper-linux-x86-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-linux-x86-32-3.2.3.tar" />
-                                <untar src="${project.build.directory}/wrapper-linux-x86-32-3.2.3.tar" dest="${project.build.directory}" />
-                                <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/linux" />
-                                <copy file="${project.build.directory}/wrapper-linux-x86-32-3.2.3/lib/libwrapper.so" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/linux/libwrapper.so" />
-                                <copy file="${project.build.directory}/wrapper-linux-x86-32-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/linux/karaf-wrapper" />
+                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-linux-x86-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-linux-x86-32-3.2.3.tar.gz" retries="5" skipexisting="true" maxtime="300" ignoreerrors="true" />
+                                <if>
+                                    <available file="${project.build.directory}/wrapper-linux-x86-32-3.2.3.tar.gz" />
+                                    <then>
+                                        <gunzip src="${project.build.directory}/wrapper-linux-x86-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-linux-x86-32-3.2.3.tar" />
+                                        <untar src="${project.build.directory}/wrapper-linux-x86-32-3.2.3.tar" dest="${project.build.directory}" />
+                                        <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/linux" />
+                                        <copy file="${project.build.directory}/wrapper-linux-x86-32-3.2.3/lib/libwrapper.so" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/linux/libwrapper.so" />
+                                        <copy file="${project.build.directory}/wrapper-linux-x86-32-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/linux/karaf-wrapper" />
+                                    </then>
+                                </if>
                                 <!-- Linux x86 64 -->
-                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-linux-x86-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-linux-x86-64-3.2.3.tar.gz" />
-                                <gunzip src="${project.build.directory}/wrapper-linux-x86-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-linux-x86-64-3.2.3.tar" />
-                                <untar src="${project.build.directory}/wrapper-linux-x86-64-3.2.3.tar" dest="${project.build.directory}" />
-                                <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/linux64" />
-                                <copy file="${project.build.directory}/wrapper-linux-x86-64-3.2.3/lib/libwrapper.so" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/linux64/libwrapper.so" />
-                                <copy file="${project.build.directory}/wrapper-linux-x86-64-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/linux64/karaf-wrapper" />
+                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-linux-x86-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-linux-x86-64-3.2.3.tar.gz" retries="5" skipexisting="true" maxtime="300" ignoreerrors="true" />
+                                <if>
+                                    <available file="${project.build.directory}/wrapper-linux-x86-64-3.2.3.tar.gz" />
+                                    <then>
+                                        <gunzip src="${project.build.directory}/wrapper-linux-x86-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-linux-x86-64-3.2.3.tar" />
+                                        <untar src="${project.build.directory}/wrapper-linux-x86-64-3.2.3.tar" dest="${project.build.directory}" />
+                                        <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/linux64" />
+                                        <copy file="${project.build.directory}/wrapper-linux-x86-64-3.2.3/lib/libwrapper.so" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/linux64/libwrapper.so" />
+                                        <copy file="${project.build.directory}/wrapper-linux-x86-64-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/linux64/karaf-wrapper" />
+                                    </then>
+                                </if>
                                 <!-- MacOS X -->
-                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-macosx-ppc-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3.tar.gz" />
-                                <gunzip src="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3.tar" />
-                                <untar src="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3.tar" dest="${project.build.directory}" />
-                                <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/macosx" />
-                                <copy file="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3/lib/libwrapper.jnilib" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/macosx/libwrapper.jnilib" />
-                                <copy file="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/macosx/karaf-wrapper" />
+                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-macosx-ppc-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3.tar.gz" retries="5" skipexisting="true" maxtime="300" ignoreerrors="true" />
+                                <if>
+                                    <available file="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3.tar.gz" />
+                                    <then>
+                                        <gunzip src="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3.tar" />
+                                        <untar src="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3.tar" dest="${project.build.directory}" />
+                                        <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/macosx" />
+                                        <copy file="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3/lib/libwrapper.jnilib" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/macosx/libwrapper.jnilib" />
+                                        <copy file="${project.build.directory}/wrapper-macosx-ppc-32-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/macosx/karaf-wrapper" />
+                                    </then>
+                                </if>
                                 <!-- Solaris SPARC 32 -->
-                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-solaris-sparc-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3.tar.gz" />
-                                <gunzip src="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3.tar" />
-                                <untar src="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3.tar" dest="${project.build.directory}" />
-                                <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/sparc32" />
-                                <copy file="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3/lib/libwrapper.so" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/sparc32/libwrapper.so" />
-                                <copy file="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/sparc32/karaf-wrapper" />
+                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-solaris-sparc-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3.tar.gz" retries="5" skipexisting="true" maxtime="300" ignoreerrors="true" />
+                                <if>
+                                    <available file="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3.tar.gz" />
+                                    <then>
+                                        <gunzip src="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3.tar" />
+                                        <untar src="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3.tar" dest="${project.build.directory}" />
+                                        <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/sparc32" />
+                                        <copy file="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3/lib/libwrapper.so" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/sparc32/libwrapper.so" />
+                                        <copy file="${project.build.directory}/wrapper-solaris-sparc-32-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/sparc32/karaf-wrapper" />
+                                    </then>
+                                </if>
                                 <!-- Solaris SPARC 64 -->
-                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-solaris-sparc-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3.tar.gz" />
-                                <gunzip src="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3.tar" />
-                                <untar src="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3.tar" dest="${project.build.directory}" />
-                                <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/sparc64" />
-                                <copy file="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3/lib/libwrapper.so" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/sparc64/libwrapper.so" />
-                                <copy file="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/sparc64/karaf-wrapper" />
+                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-solaris-sparc-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3.tar.gz" retries="5" skipexisting="true" maxtime="300" ignoreerrors="true" />
+                                <if>
+                                    <available file="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3.tar.gz" />
+                                    <then>
+                                        <gunzip src="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3.tar" />
+                                        <untar src="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3.tar" dest="${project.build.directory}" />
+                                        <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/sparc64" />
+                                        <copy file="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3/lib/libwrapper.so" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/sparc64/libwrapper.so" />
+                                        <copy file="${project.build.directory}/wrapper-solaris-sparc-64-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/sparc64/karaf-wrapper" />
+                                    </then>
+                                </if>
                                 <!-- Solaris x86 32 -->
-                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-solaris-x86-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-solaris-x86-32-3.2.3.tar.gz" />
-                                <gunzip src="${project.build.directory}/wrapper-solaris-x86-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-solaris-x86-32-3.2.3.tar" />
-                                <untar src="${project.build.directory}/wrapper-solaris-x86-32-3.2.3.tar" dest="${project.build.directory}" />
-                                <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/x86" />
-                                <copy file="${project.build.directory}/wrapper-solaris-x86-32-3.2.3/lib/libwrapper.so" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/x86/libwrapper.so" />
-                                <copy file="${project.build.directory}/wrapper-solaris-x86-32-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/x86/karaf-wrapper" />                            
-                                <!-- Windows x86 32 --> 
-                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-windows-x86-32-3.2.3.zip" dest="${project.build.directory}/wrapper-windows-x86-32-3.2.3.zip" />
-                                <unzip src="${project.build.directory}/wrapper-windows-x86-32-3.2.3.zip" dest="${project.build.directory}" />
-                                <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/windows" />
-                                <copy file="${project.build.directory}/wrapper-windows-x86-32-3.2.3/lib/wrapper.dll" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/windows/wrapper.dll" />
-                                <copy file="${project.build.directory}/wrapper-windows-x86-32-3.2.3/bin/wrapper.exe" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/windows/wrapper.exe" />                            
+                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-solaris-x86-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-solaris-x86-32-3.2.3.tar.gz" retries="5" skipexisting="true" maxtime="300" ignoreerrors="true" />
+                                <if>
+                                    <available file="${project.build.directory}/wrapper-solaris-x86-32-3.2.3.tar.gz" />
+                                    <then>
+                                        <gunzip src="${project.build.directory}/wrapper-solaris-x86-32-3.2.3.tar.gz" dest="${project.build.directory}/wrapper-solaris-x86-32-3.2.3.tar" />
+                                        <untar src="${project.build.directory}/wrapper-solaris-x86-32-3.2.3.tar" dest="${project.build.directory}" />
+                                        <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/x86" />
+                                        <copy file="${project.build.directory}/wrapper-solaris-x86-32-3.2.3/lib/libwrapper.so" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/x86/libwrapper.so" />
+                                        <copy file="${project.build.directory}/wrapper-solaris-x86-32-3.2.3/bin/wrapper" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/solaris/x86/karaf-wrapper" />
+                                    </then>
+                                </if>
+                                <!-- Windows x86 32 -->
+                                <get src="https://download.tanukisoftware.com/wrapper/3.2.3/wrapper-windows-x86-32-3.2.3.zip" dest="${project.build.directory}/wrapper-windows-x86-32-3.2.3.zip" retries="5" skipexisting="true" maxtime="300" ignoreerrors="true" />
+                                <if>
+                                    <available file="${project.build.directory}/wrapper-windows-x86-32-3.2.3.zip" />
+                                    <then>
+                                        <unzip src="${project.build.directory}/wrapper-windows-x86-32-3.2.3.zip" dest="${project.build.directory}" />
+                                        <mkdir dir="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/windows" />
+                                        <copy file="${project.build.directory}/wrapper-windows-x86-32-3.2.3/lib/wrapper.dll" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/windows/wrapper.dll" />
+                                        <copy file="${project.build.directory}/wrapper-windows-x86-32-3.2.3/bin/wrapper.exe" tofile="${project.build.directory}/classes/org/apache/karaf/wrapper/internal/windows/wrapper.exe" />
+                                    </then>
+                                </if>
                                 <!-- Windows x86 64 -->
                                 <mkdir dir="${project.build.directory}/windows64" />
                                 <get src="https://downloads.apache.org/karaf/wrapper/windows64/karaf-wrapper.exe" dest="${project.build.directory}/windows64/karaf-wrapper.exe" />