Nayana-ibm commented on PR #3261:
URL: https://github.com/apache/solr/pull/3261#issuecomment-2758039445

   We've tested these changes on the s390x architecture, and they are not 
working as expected.
   Specifically, the current code:
   `def withUiModule = !rootProject.hasProperty('disableUiModule') || 
rootProject.findProperty('disableUiModule') != 'true'`
   always evaluates `withUiModule `as true, which means the UI module is never 
disabled.
   
   To fix this, we made some changes to ensure the disableUiModule flag is 
properly recognized. Please see diff below: 
   ```
   diff --git a/build.gradle b/build.gradle
   index 24c2045..7901130 100644
   --- a/build.gradle
   +++ b/build.gradle
   @@ -35,6 +35,10 @@ plugins {
      alias(libs.plugins.openapi.generator) apply false
    }
   
   +ext {
   +    withUiModule = gradle.ext.withUiModule  // Use the global setting
   +}
   +
    // Declare default Java versions for the entire project and for SolrJ 
separately
    rootProject.ext.minJavaVersionDefault = 
JavaVersion.toVersion(libs.versions.java.min.get())
    rootProject.ext.minJavaVersionSolrJ = 
JavaVersion.toVersion(libs.versions.java.solrj.get())
   @@ -114,7 +118,6 @@ ext {
        logger.debug('Lucene base version (without suffix): {}', 
luceneBaseVersion)
        return luceneBaseVersion
      }
   -
      // For testing code
      vectorIncubatorJavaVersions = [ JavaVersion.VERSION_21, 
JavaVersion.VERSION_22, JavaVersion.VERSION_23, JavaVersion.VERSION_24, 
JavaVersion.VERSION_25 ] as Set
    }
   diff --git a/settings.gradle b/settings.gradle
   index 14b9169..4a16234 100644
   --- a/settings.gradle
   +++ b/settings.gradle
   @@ -57,7 +57,6 @@ include "solr:modules:s3-repository"
    include "solr:modules:scripting"
    include "solr:modules:sql"
    include "solr:webapp"
   -include "solr:ui"
    include "solr:benchmark"
    include "solr:test-framework"
    include "solr:solr-ref-guide"
   @@ -68,5 +67,11 @@ include "solr:distribution"
    include "solr:docker"
    include "solr:prometheus-exporter"
   
   +def disableUiModuleValue = 
providers.gradleProperty('disableUiModule').orNull
   +gradle.ext.withUiModule = disableUiModuleValue == null || 
disableUiModuleValue != 'true'
   +if (gradle.ext.withUiModule) {
   +    include(":solr:ui")
   +}
   +
    // Configures development for joint Lucene/ Solr composite build.
    apply from: file('gradle/lucene-dev/lucene-dev-repo-composite.gradle')
   diff --git a/solr/webapp/build.gradle b/solr/webapp/build.gradle
   index bd701b9..3ea3607 100644
   --- a/solr/webapp/build.gradle
   +++ b/solr/webapp/build.gradle
   @@ -94,22 +94,24 @@ task downloadBrowserify(type: NpmTask) {
      outputs.dir("${nodeProjectDir}/node_modules/browserify")
    }
   
   -tasks.register("generateUiDevFiles") {
   -  description = "Generate new UI for development and add files to outputs 
for later referencing."
   -  group = "build"
   -
   -  // Development files are larger in size but have shorter compile times.
   -  dependsOn 
project(":solr:ui").tasks.wasmJsBrowserDevelopmentExecutableDistribution
   -  
outputs.dir(project(":solr:ui").file("build/dist/wasmJs/developmentExecutable/"))
   +if (gradle.ext.withUiModule) {
   +  tasks.register("generateUiDevFiles") {
   +    description = "Generate new UI for development and add files to outputs 
for later referencing."
   +    group = "build"
   +    dependsOn 
project(":solr:ui").tasks.wasmJsBrowserDevelopmentExecutableDistribution
   +    
outputs.dir(project(":solr:ui").file("build/dist/wasmJs/developmentExecutable/"))
   +  }
    }
   
   -tasks.register("generateUiProdFiles") {
   -  description = "Generate new UI for production and add files to outputs 
for later referencing"
   -  group = "build"
   +if (gradle.ext.withUiModule) {
   +  tasks.register("generateUiProdFiles") {
   +    description = "Generate new UI for production and add files to outputs 
for later referencing"
   +    group = "build"
   
   -  // Production files are smaller in size but have longer compile times.
   -  dependsOn project(":solr:ui").tasks.wasmJsBrowserDistribution
   -  
outputs.dir(project(":solr:ui").file("build/dist/wasmJs/productionExecutable/"))
   +    // Production files are smaller in size but have longer compile times.
   +    dependsOn project(":solr:ui").tasks.wasmJsBrowserDistribution
   +    
outputs.dir(project(":solr:ui").file("build/dist/wasmJs/productionExecutable/"))
   +  }
    }
   
    task generateJsClientBundle(type: NpxTask) {
   @@ -151,13 +153,15 @@ war {
   
      // Include new Admin UI files in webapp
      // By default, we always build dev that does not optimize generated files 
for release to reduce build times.
   -  if (rootProject.ext.development) {
   -    from (tasks.generateUiDevFiles) {
   -      into "ui"
   -    }
   -  } else {
   -    from (tasks.generateUiProdFiles) {
   -      into "ui"
   +  if (gradle.ext.withUiModule) {
   +    if (rootProject.ext.development) {
   +      from (tasks.generateUiDevFiles) {
   +        into "ui"
   +      }
   +    } else {
   +      from (tasks.generateUiProdFiles) {
   +        into "ui"
   +      }
        }
      }
    }
   ```
   Now, if you want to disable the UI module, you can simply run:
   `./gradlew -PdisableUiModule=true` 
   This update makes sure the build process correctly includes or excludes the 
UI module based on your settings.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to