Uploaded image for project: 'Quarkus'
  1. Quarkus
  2. QUARKUS-5216

quarkus-tls-registry should declare its CLI plugin as fatjar

XMLWordPrintable

    • False
    • None
    • False
    • +
    • Hide

      acquire the product Maven repository zip file and unzip it, then

      wget -O /home/hudson/.m2/settings.xml https://gitlab.cee.redhat.com/quarkus-qe/jenkins-jobs/-/raw/main/jobs/rhbq/files/settings.xml
      
      unzip -qo quarkus-maven-repo.zip
      
      sed -i -e 's|/path_to_repo|$PWD/rh-quarkus-platform-3.15.1.GA-maven-repository/maven-repository/|' /home/hudson/.m2/settings.xml
      
      mkdir -p /home/hudson/.quarkus/
      
      cat <<EOF > ~/.quarkus/config.yaml
      ---
      registries:
      - registry-3-15-1-redhat-00002.apps.ocp-c1.prod.psi.redhat.com:
          update-policy: "always"
          descriptor:
            artifact: "com.redhat.psi.prod.ocp-c1.apps.registry-3-15-1-redhat-00002:quarkus-registry-descriptor::json:1.0-SNAPSHOT"
          maven:
            repository:
              url: "https://registry-3-15-1-redhat-00002.apps.ocp-c1.prod.psi.redhat.com/maven"
      - registry.quarkus.redhat.com
      - registry.quarkus.io
      EOF
      
      jbang config set run.repos file://${PATH_TO_UNZIPPED_REPO}
      
      quarkus create app reproducer --stream=3.15 -x=quarkus-rest -Dquarkus.analytics.disabled=true
      
      cd reproducer
      
      quarkus tls generate-quarkus-ca --truststore -r --verbose 
      
      Show
      acquire the product Maven repository zip file and unzip it, then wget -O /home/hudson/.m2/settings.xml https: //gitlab.cee.redhat.com/quarkus-qe/jenkins-jobs/-/raw/main/jobs/rhbq/files/settings.xml unzip -qo quarkus-maven-repo.zip sed -i -e 's|/path_to_repo|$PWD/rh-quarkus-platform-3.15.1.GA-maven-repository/maven-repository/|' /home/hudson/.m2/settings.xml mkdir -p /home/hudson/.quarkus/ cat <<EOF > ~/.quarkus/config.yaml --- registries: - registry-3-15-1-redhat-00002.apps.ocp-c1.prod.psi.redhat.com:     update-policy: "always"     descriptor:       artifact: "com.redhat.psi.prod.ocp-c1.apps.registry-3-15-1-redhat-00002:quarkus-registry-descriptor::json:1.0-SNAPSHOT"     maven:       repository:         url: "https: //registry-3-15-1-redhat-00002.apps.ocp-c1.prod.psi.redhat.com/maven" - registry.quarkus.redhat.com - registry.quarkus.io EOF jbang config set run.repos file: //${PATH_TO_UNZIPPED_REPO} quarkus create app reproducer --stream=3.15 -x=quarkus- rest -Dquarkus.analytics.disabled= true cd reproducer quarkus tls generate-quarkus-ca --truststore -r --verbose 
    • ---

      In extension metadata, quarkus-tls-registry should declare its CLI plugin as fatjar, as the jar itself is shaded.

      Right now, without any configuration, CLI's jbang extension discovery mechanism will try to resolve all the CLI plugin's dependencies without the @fatjar classifier.

      For example, notice the missing @fatjar classifier in the cli-plugins field of rh-quarkus-platform-3.15.1.GA-maven-repository/maven-repository/io/quarkus/quarkus-tls-registry/3.15.1.redhat-00003/quarkus-tls-registry-3.15.1.redhat-00003.jar::META-INF/quarkus-extension.yaml 3.15.1.CR1 config:

      ---
      artifact: "io.quarkus:quarkus-tls-registry:3.15.1.redhat-00003"
      name: "TLS certificate registry"
      metadata:
        categories:
        - "web"
        status: "stable"
        unlisted: true
        config:
        - "quarkus.tls."
        cli-plugins:
        - "tls: io.quarkus:quarkus-tls-registry-cli:3.15.1.redhat-00003"
        built-with-quarkus-core: "3.15.1.redhat-00003"
        requires-quarkus-core: "[3.15,)"
        minimum-java-version: "17"
        scm-url: "https://github.com/quarkusio/quarkus"
        extension-dependencies:
        - "io.quarkus:quarkus-vertx"
        - "io.quarkus:quarkus-netty"
        - "io.quarkus:quarkus-mutiny"
        - "io.quarkus:quarkus-smallrye-context-propagation"
        - "io.quarkus:quarkus-virtual-threads"
        - "io.quarkus:quarkus-arc"
        - "io.quarkus:quarkus-core"
      description: "An internal TLS certificate registry."
      

      Since this is not annotated as fatjar, jbang attempts to resolve the dependency tree of the GAV's pom, despite the artifact being a shaded jar, resulting in bugs like QUARKUS-5215.

      Steps to reproduce

      acquire the product Maven repository zip file and unzip it, then

      wget -O /home/hudson/.m2/settings.xml https://gitlab.cee.redhat.com/quarkus-qe/jenkins-jobs/-/raw/main/jobs/rhbq/files/settings.xml
      
      unzip -qo quarkus-maven-repo.zip
      
      sed -i -e 's|/path_to_repo|$PWD/rh-quarkus-platform-3.15.1.GA-maven-repository/maven-repository/|' /home/hudson/.m2/settings.xml
      
      mkdir -p /home/hudson/.quarkus/
      
      cat <<EOF > ~/.quarkus/config.yaml
      ---
      registries:
      - registry-3-15-1-redhat-00002.apps.ocp-c1.prod.psi.redhat.com:
          update-policy: "always"
          descriptor:
            artifact: "com.redhat.psi.prod.ocp-c1.apps.registry-3-15-1-redhat-00002:quarkus-registry-descriptor::json:1.0-SNAPSHOT"
          maven:
            repository:
              url: "https://registry-3-15-1-redhat-00002.apps.ocp-c1.prod.psi.redhat.com/maven"
      - registry.quarkus.redhat.com
      - registry.quarkus.io
      EOF
      
      jbang config set run.repos file://${PATH_TO_UNZIPPED_REPO}
      
      quarkus create app reproducer --stream=3.15 -x=quarkus-rest -Dquarkus.analytics.disabled=true
      
      cd reproducer
      
      quarkus tls generate-quarkus-ca --truststore -r --verbose 
      

              gsmet@redhat.com Guillaume Smet
              mjurc@redhat.com Michal Jurc
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: