jruby-gradle / jruby-gradle-plugin

A Gradle plugin for working with JRuby projects for fun and profit. Mostly profit.
http://jruby-gradle.org
Other
93 stars 38 forks source link

use protocol handler instead of rubygems servlet #239

Open mkristian opened 9 years ago

mkristian commented 9 years ago

replacing the rubygems servlet with a custom protocol handler. for protocol handler see http://docstore.mik.ua/orelly/java/exp/ch09_06.htm

this allows to use url/uri inside java like mavengem:https://rubygems.org the protocol handler will use the nexus-ruby-tools library directly (like the rubygems-servlet) does.

this removes the need to run a server in the background, once the "mavengem" protocol is registered any further attempts to register is a noop operation, i.e. registration should be idem potent. i.e. we share the protocol handler over ALL subprojects.

as the new protocol is just an URL to maven repository we can use the already existing code to setup such rubygems repositories inside build.gradle.

rtyler commented 9 years ago

@mkristian do you know whether or not the maven { url 'foo' } support in Gradle will properly utilize and respect protocol handlers? Sounds like a very novel approach!

mkristian commented 9 years ago

gradles uses URL objects, then gradle has no chance but to use those :)

usually this is used to implement custom classloaders but we do not need the classloader here. so it is quite common to do this.