lib/jbundler.rb in jbundler-0.5.5 vs lib/jbundler.rb in jbundler-0.6.0
- old
+ new
@@ -16,64 +16,72 @@
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-require 'maven/tools/jarfile'
-require 'jbundler/classpath_file'
-require 'jbundler/vendor'
-require 'jbundler/gemfile_lock'
-require 'jbundler/aether'
+require 'jbundler/context'
+
module JBundler
- def setup_test
- config = JBundler::Config.new
- JBundler::ClasspathFile.new(config.classpath_file).require_test_classpath
- config
+ def self.context
+ @context ||= JBundler::Context.new
end
-end
+ def self.setup_test
+ context.classpath.require_test_classpath
+ context.config
+ end
-config = JBundler::Config.new
-
-jarfile = Maven::Tools::Jarfile.new(config.jarfile)
-if config.skip
- warn "skip jbundler setup"
-else
- vendor = JBundler::Vendor.new(config.vendor_dir)
- classpath_file = JBundler::ClasspathFile.new(config.classpath_file)
- gemfile_lock = JBundler::GemfileLock.new(jarfile, config.gemfile_lock)
-
- if classpath_file.needs_update?(jarfile, gemfile_lock) && ! vendor.vendored?
- aether = JBundler::AetherRuby.new(config)
-
- jarfile.populate_unlocked(aether)
- gemfile_lock.populate_dependencies(aether)
- jarfile.populate_locked(aether)
-
- aether.resolve
-
- classpath_file.generate(aether.classpath_array)
- jarfile.generate_lockfile(aether.resolved_coordinates)
+ def self.update
+ if( context.classpath.needs_update?( context.jarfile,
+ context.gemfile_lock ) and
+ not context.vendor.vendored? )
+
+ warn 'deprecated - use jbundle install to update bundle'
+ aether = JBundler::AetherRuby.new( context.config )
+
+ context.jarfile.populate_unlocked( aether )
+ context.gemfile_lock.populate_dependencies( aether )
+ context.jarfile.populate_locked( aether )
+
+ aether.resolve
+
+ context.classpath.generate( aether.classpath_array, [], [],
+ context.config.local_repository )
+ context.jarfile.generate_lockfile( aether.resolved_coordinates )
+ end
end
- if vendor.vendored?
- jars = vendor.require_jars
- if config.verbose
- warn "jbundler classpath:"
- jars.each do |path|
- warn "\t#{path}"
+ def self.require_jars
+ if context.vendor.vendored?
+ jars = context.vendor.require_jars
+ if context.config.verbose
+ warn "jbundler classpath:"
+ jars.each do |path|
+ warn "\t#{path}"
+ end
end
- end
- elsif classpath_file.exists? && jarfile.exists_lock?
- require 'java'
- classpath_file.require_classpath
- if config.verbose
- warn "jbundler classpath:"
- JBUNDLER_CLASSPATH.each do |path|
- warn "\t#{path}"
+ elsif context.classpath.exists? && context.jarfile.exists_lock?
+ require 'java'
+ context.classpath_file.require_classpath
+ if context.config.verbose
+ warn "jbundler classpath:"
+ JBUNDLER_CLASSPATH.each do |path|
+ warn "\t#{path}"
+ end
end
+ Jars.freeze_loading
end
end
-
+
+ def self.setup
+ if context.config.skip
+ warn "skip jbundler setup" if context.config.verbose
+ else
+ update
+ require_jars
+ end
+ end
end
+
+JBundler.setup