Closed kares closed 4 years ago
right, won't boot if we simply just try disabling rubygems :
Caused by: org.jruby.exceptions.NameError: (NameError) uninitialized constant Maven::Tools::DSL::Gem
at org.jruby.RubyModule.const_missing (org/jruby/RubyModule.java:3746)
at RUBY.gemspec_without_gem_dependencies? (uri:classloader:/maven/tools/dsl.rb:401)
at RUBY.gemspec (uri:classloader:/maven/tools/dsl.rb:390)
at RUBY.eval_pom (/home/kares/workspace/oss/jruby-openssl/Mavenfile:4)
at RUBY.nested_block (uri:classloader:/maven/tools/dsl.rb:1484)
at RUBY.tesla (uri:classloader:/maven/tools/dsl.rb:20)
at RUBY.eval_pom (/home/kares/workspace/oss/jruby-openssl/Mavenfile:1)
at org.jruby.RubyKernel.eval (org/jruby/RubyKernel.java:1061)
at RUBY.eval_pom (uri:classloader:/maven/tools/dsl.rb:67)
at RUBY.parse (classpath:/parser.rb:80)
I think this should've been actually fixed in the last version of mavengem? At least this commit seems to intend fixing it.
I run into this error when running mvn -Pbootstrap
on the jruby repo and fixed it by grepping for mavengem and replacing the old version (0.2.0) with the new one (1.0.3).
Thanks David, yes that handles the case but not for every case - haven't looked into details. Did upgrade mavengem previous to the report as I also thought this had been resolved (lately):
<extension>
<groupId>org.torquebox.mojo</groupId>
<artifactId>mavengem-wagon</artifactId>
<version>1.0.3</version>
</extension>
[DEBUG] Populating class realm coreExtension>org.torquebox.mojo:mavengem-wagon:1.0.3
[DEBUG] Included /opt/local/maven-repo/org/torquebox/mojo/mavengem-wagon/1.0.3/mavengem-wagon-1.0.3.jar
[DEBUG] Included /opt/local/maven-repo/org/torquebox/mojo/mavengem-protocol/1.0.3/mavengem-protocol-1.0.3.jar
[DEBUG] Included /opt/local/maven-repo/org/torquebox/mojo/rubygems-tools/1.0.3/rubygems-tools-1.0.3.jar
[DEBUG] Included /opt/local/maven-repo/commons-codec/commons-codec/1.11/commons-codec-1.11.jar
[DEBUG] Included /opt/local/maven-repo/org/jruby/jruby/9.1.17.0/jruby-9.1.17.0.pom
[DEBUG] Included /opt/local/maven-repo/org/jruby/jruby/9.1.17.0/jruby-9.1.17.0.jar
[DEBUG] Included /opt/local/maven-repo/org/jruby/jruby-core/9.1.17.0/jruby-core-9.1.17.0.jar
while doing that I also noticed (further down the build debug) :
[DEBUG] Created new class realm extension>org.torquebox.mojo:mavengem-wagon:0.2.1
[DEBUG] Importing foreign packages into class realm extension>org.torquebox.mojo:mavengem-wagon:0.2.1
[DEBUG] Imported: < maven.api
[DEBUG] Populating class realm extension>org.torquebox.mojo:mavengem-wagon:0.2.1
[DEBUG] Included: org.torquebox.mojo:mavengem-wagon:jar:0.2.1
[DEBUG] Included: org.torquebox.mojo:mavengem-protocol:jar:0.2.1
[DEBUG] Included: org.sonatype.nexus.plugins:nexus-ruby-tools:jar:2.11.4-01
[DEBUG] Included: org.jruby:jruby:pom:1.7.19
[DEBUG] Included: org.jruby:jruby-core:jar:1.7.19
... which is coming from polyglot-ruby defaulting to old an old mavengem version, fixed on master (not released atm): https://github.com/takari/polyglot-maven/commit/8a8a6f8ef5898555d27522f15fb20f802784e5d3
could use a newer release with a JRuby upgrade for now, still seems to be stucked with JRuby 1.7 which has issues on Java 11 (any Java >= 9)
using jruby-openssl ~ 0.9.5 - assumed the default key store type to be JKS, but it started returning PKCS12 on Java 9, thus we always fail on
require 'openssl'
:caused by :
Full Maven Log
``` [DEBUG] ======================================================================= [DEBUG] Skipped remote request for rubygems:jar-dependencies/maven-metadata.xml, locally cached metadata up-to-date. [DEBUG] Using transporter WagonTransporter with priority -1.0 for mavengem:https://rubygems.org [DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for mavengem:https://rubygems.org Downloading from mavengems: mavengem:https://rubygems.org/rubygems/jar-dependencies/maven-metadata.xml OpenSSL::X509::StoreError: setting default path failed: No password supplied for PKCS#12 KeyStore. set_default_paths at org/jruby/ext/openssl/X509Store.java:165 SSLContext at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/jopenssl19/openssl/ssl-internal.rb:31 SSL at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/jopenssl19/openssl/ssl-internal.rb:22 OpenSSL at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/jopenssl19/openssl/ssl-internal.rb:21 (root) at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/jopenssl19/openssl/ssl-internal.rb:20 load at org/jruby/RubyKernel.java:1087 (root) at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/openssl/ssl-internal.rb:1 require at org/jruby/RubyKernel.java:1071 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:53 (root) at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/openssl/ssl-internal.rb:4 load at org/jruby/RubyKernel.java:1087 (root) at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/jopenssl19/openssl.rb:1 require at org/jruby/RubyKernel.java:1071 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:53 (root) at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/jopenssl19/openssl.rb:21 require at org/jruby/RubyKernel.java:1071 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:53 (root) at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/jopenssl/load.rb:1 require at org/jruby/RubyKernel.java:1071 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:53 (root) at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/jopenssl/load.rb:24 require at org/jruby/RubyKernel.java:1071 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:53 (root) at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/openssl.rb:1 require at org/jruby/RubyKernel.java:1071 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:53 (root) at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/openssl.rb:1 require at org/jruby/RubyKernel.java:1071 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:53 (root) at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/security.rb:1 require at org/jruby/RubyKernel.java:1071 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55 require at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:53 (root) at uri:classloader:/META-INF/jruby.home/lib/ruby/shared/rubygems/security.rb:11 [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.884 s [INFO] Finished at: 2020-02-04T11:05:02+01:00 [INFO] ------------------------------------------------------------------------ --------------------------------------------------- constituent[0]: file:/opt/maven/conf/logging/ constituent[1]: file:/opt/maven/lib/wagon-provider-api-3.1.0.jar constituent[2]: file:/opt/maven/lib/javax.inject-1.jar constituent[3]: file:/opt/maven/lib/cdi-api-1.0.jar constituent[4]: file:/opt/maven/lib/plexus-interpolation-1.24.jar constituent[5]: file:/opt/maven/lib/guice-4.2.0-no_aop.jar constituent[6]: file:/opt/maven/lib/org.eclipse.sisu.inject-0.3.3.jar constituent[7]: file:/opt/maven/lib/maven-resolver-transport-wagon-1.1.1.jar constituent[8]: file:/opt/maven/lib/maven-slf4j-provider-3.5.4.jar constituent[9]: file:/opt/maven/lib/plexus-component-annotations-1.7.1.jar constituent[10]: file:/opt/maven/lib/maven-compat-3.5.4.jar constituent[11]: file:/opt/maven/lib/guava-20.0.jar constituent[12]: file:/opt/maven/lib/jsr250-api-1.0.jar constituent[13]: file:/opt/maven/lib/commons-lang3-3.5.jar constituent[14]: file:/opt/maven/lib/plexus-utils-3.1.0.jar constituent[15]: file:/opt/maven/lib/wagon-http-3.1.0-shaded.jar constituent[16]: file:/opt/maven/lib/maven-repository-metadata-3.5.4.jar constituent[17]: file:/opt/maven/lib/maven-builder-support-3.5.4.jar constituent[18]: file:/opt/maven/lib/maven-model-3.5.4.jar constituent[19]: file:/opt/maven/lib/maven-resolver-spi-1.1.1.jar constituent[20]: file:/opt/maven/lib/maven-embedder-3.5.4.jar constituent[21]: file:/opt/maven/lib/maven-shared-utils-3.2.1.jar constituent[22]: file:/opt/maven/lib/aopalliance-1.0.jar constituent[23]: file:/opt/maven/lib/maven-core-3.5.4.jar constituent[24]: file:/opt/maven/lib/maven-settings-builder-3.5.4.jar constituent[25]: file:/opt/maven/lib/maven-plugin-api-3.5.4.jar constituent[26]: file:/opt/maven/lib/plexus-sec-dispatcher-1.4.jar constituent[27]: file:/opt/maven/lib/maven-resolver-impl-1.1.1.jar constituent[28]: file:/opt/maven/lib/maven-artifact-3.5.4.jar constituent[29]: file:/opt/maven/lib/plexus-cipher-1.7.jar constituent[30]: file:/opt/maven/lib/wagon-file-3.1.0.jar constituent[31]: file:/opt/maven/lib/maven-resolver-util-1.1.1.jar constituent[32]: file:/opt/maven/lib/jcl-over-slf4j-1.7.25.jar constituent[33]: file:/opt/maven/lib/maven-settings-3.5.4.jar constituent[34]: file:/opt/maven/lib/maven-model-builder-3.5.4.jar constituent[35]: file:/opt/maven/lib/slf4j-api-1.7.25.jar constituent[36]: file:/opt/maven/lib/commons-cli-1.4.jar constituent[37]: file:/opt/maven/lib/maven-resolver-provider-3.5.4.jar constituent[38]: file:/opt/maven/lib/maven-resolver-api-1.1.1.jar constituent[39]: file:/opt/maven/lib/org.eclipse.sisu.plexus-0.3.3.jar constituent[40]: file:/opt/maven/lib/commons-io-2.5.jar constituent[41]: file:/opt/maven/lib/jansi-1.17.1.jar constituent[42]: file:/opt/maven/lib/maven-resolver-connector-basic-1.1.1.jar --------------------------------------------------- Exception in thread "main" java.lang.ExceptionInInitializerError at org.torquebox.mojo.mavengem.RubygemsFactory.getOrCreate(RubygemsFactory.java:116) at org.torquebox.mojo.mavengem.MavenGemURLConnection.connect(MavenGemURLConnection.java:103) at org.torquebox.mojo.mavengem.MavenGemURLConnection.getInputStream(MavenGemURLConnection.java:83) at org.torquebox.mojo.mavengem.wagon.MavenGemWagon.fillInputData(MavenGemWagon.java:51) at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:126) at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88) at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61) at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run(WagonTransporter.java:567) at org.eclipse.aether.transport.wagon.WagonTransporter.execute(WagonTransporter.java:435) at org.eclipse.aether.transport.wagon.WagonTransporter.get(WagonTransporter.java:412) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:453) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:360) at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:75) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:583) at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:232) at org.eclipse.aether.internal.impl.DefaultMetadataResolver$ResolveTask.run(DefaultMetadataResolver.java:593) at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:75) at org.eclipse.aether.internal.impl.DefaultMetadataResolver$1.execute(DefaultMetadataResolver.java:513) at org.eclipse.aether.internal.impl.DefaultMetadataResolver.resolve(DefaultMetadataResolver.java:368) at org.eclipse.aether.internal.impl.DefaultMetadataResolver.resolveMetadata(DefaultMetadataResolver.java:191) at org.apache.maven.repository.internal.DefaultVersionRangeResolver.getVersions(DefaultVersionRangeResolver.java:218) at org.apache.maven.repository.internal.DefaultVersionRangeResolver.resolveVersionRange(DefaultVersionRangeResolver.java:168) at org.eclipse.aether.internal.impl.DefaultDependencyCollector.cachedResolveRangeResult(DefaultDependencyCollector.java:619) at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:394) at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:365) at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process(DefaultDependencyCollector.java:353) at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:256) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:282) at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:169) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:243) at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:147) at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:246) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:200) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:954) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:192) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.jruby.embed.EvalFailedException: (OpenSSL::X509::StoreError) setting default path failed: No password supplied for PKCS#12 KeyStore. at org.jruby.embed.internal.EmbedEvalUnitImpl.run(EmbedEvalUnitImpl.java:133) at org.jruby.embed.ScriptingContainer.runUnit(ScriptingContainer.java:1340) at org.jruby.embed.ScriptingContainer.runScriptlet(ScriptingContainer.java:1333) at org.sonatype.nexus.ruby.DefaultRubygemsGateway.there was a discussion that loading OpenSSL really would not be needed in this case and there's an open unpolished experiment: https://github.com/jruby/mavengem/pull/2 ... with JRuby 9.2.9.0 could maybe just force
-Djruby.cli.rubygems.enable=false
?either way a newer JRuby release might be necessary to properly run on newer Java ...