jbundler 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/Build.md CHANGED
@@ -12,7 +12,7 @@ to build the (extension) jar for the lib directory (prepare the jar before packa
12
12
 
13
13
  this also runs all the test over a couple of jruy version each in 1.8 and 1.9 mode. so these tests take some time. in skip the tests when building the gem use:
14
14
 
15
- ```rmvn prepare-package --Dmaven.test.skip```
15
+ ```rmvn prepare-package -DskipTests```
16
16
 
17
17
  to build the gem in **target/jbundler-0.0.1.gem**
18
18
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jbundler (0.2.0)
4
+ jbundler (0.2.1)
5
5
  ruby-maven (= 3.0.4.0.29.0)
6
6
 
7
7
  GEM
@@ -18,10 +18,11 @@ GEM
18
18
  gherkin (2.9.3-java)
19
19
  json (>= 1.4.6)
20
20
  json (1.7.3-java)
21
- maven-tools (0.29.0)
21
+ maven-tools (0.29.3)
22
22
  minitest (2.10.1)
23
+ rake (0.9.2.2)
23
24
  ruby-maven (3.0.4.0.29.0)
24
- maven-tools (= 0.29.0)
25
+ maven-tools (~> 0.29.1)
25
26
  thor (~> 0.14.6)
26
27
  term-ansicolor (1.0.7)
27
28
  thor (0.14.6)
@@ -33,3 +34,5 @@ DEPENDENCIES
33
34
  cucumber (~> 1.1.9)
34
35
  jbundler!
35
36
  minitest (~> 2.10.0)
37
+ rake (= 0.9.2.2)
38
+ thor (> 0.14.0, < 0.16.0)
data/Readme.md CHANGED
@@ -1,8 +1,8 @@
1
- # jbundler #
1
+ # jbundler [![Build Status](https://secure.travis-ci.org/mkristian/jbundler.png)](http://travis-ci.org/mkristian/jbundler) #
2
2
 
3
3
  * the DSL mimics the one from bundler
4
4
  * you can use maven like version declaration or rubygems/bundler like version ranges
5
- * it locks down the versions like bundler inside "Mvnfile.lock"
5
+ * it locks down the versions like bundler inside "Jarfile.lock"
6
6
  * you can declare jar dependency within a rubygems using the requirements directive of the gem specification. jbundler will include those jar dependencies into its classpath
7
7
  * on the first run everything get resolved, any further run just the setup of classpath is done (without any maven involved)
8
8
  * it integrates nicely with bundler when Bundler.require is used
@@ -37,13 +37,24 @@ update of single artifacts is not possible.
37
37
 
38
38
  since the version resolution happens in two steps - first the gems then the jars/poms - it is possible in case of failure of the second one there could be another set of versions for the gems which would then succeed the jars/poms resolution. but there is plenty of possible ways to improve this (maven could resolve the gems as well, etc)
39
39
 
40
- **Mvnfile** is **not** a DSL, i.e. it is not ruby though it could use a ruby DSL to read the data (any contribution welcome).
40
+ **Jarfile** is **not** a DSL, i.e. it is not ruby though it could use a ruby DSL to read the data (any contribution welcome).
41
41
 
42
+ jbundler does not obey the **$HOME/.m2/settings.xml** from maven where you usually declare proxies, mirrors, etc.
43
+
44
+ ## adding a maven repository ##
45
+
46
+ the maven central is default repostory and is always there. adding another repository use following decalration
47
+
48
+ repository :first, "http://example.com/repo"
49
+ source 'second', "http://example.org/repo"
50
+ source "http://example.org/repo/3"
51
+
52
+
42
53
  ## jar/pom dependencies ##
43
54
 
44
55
  a pom dependency is not associated with a jar file but has dependencies to other poms or jars.
45
56
 
46
- dependencies can be declared either in **Mvnfile**
57
+ dependencies can be declared either in **Jarfile**
47
58
 
48
59
  jar 'org.slf4j:slf4j-simple', '> 1.6.2', '< 1.7.0'
49
60
  jar 'org.sonatype.aether:aether-api', '1.13'
@@ -79,9 +90,9 @@ the *not* version **!3.4.5** can not be mapped properly to a maven version range
79
90
 
80
91
  ## update ##
81
92
 
82
- update of a single artifact is not possible (yet). but to update the whole set of artifacts just delete the lockfile *Mvnfile.lock*
93
+ update of a single artifact is not possible (yet). but to update the whole set of artifacts just delete the lockfile *Jarfile.lock*
83
94
 
84
- if jbundler sees that **Gemfile.lock** or **Mvnfile** is newer then the **.jbundler/classpath.rb** file then jbundler tries to gracefully upgrade towards the changes. the is a maven-like behaviour and once there are command line tools for jbundler they can behave like bundler.
95
+ if jbundler sees that **Gemfile.lock** or **Jarfile** is newer then the **.jbundler/classpath.rb** file then jbundler tries to gracefully upgrade towards the changes. the is a maven-like behaviour and once there are command line tools for jbundler they can behave like bundler.
85
96
 
86
97
  ## meta-fu ##
87
98
 
data/Test.md ADDED
File without changes
data/bin/jbundler ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+
4
+ if ARGV[0] == 'help'
5
+
6
+ require 'jbundler/cli'
7
+
8
+ JBundler::Cli.start
9
+
10
+ else
11
+
12
+ load Gem.bin_path('bundler', 'bundle')
13
+
14
+ ARGV << 'install' if ARGV.size == 0
15
+ require 'jbundler/cli'
16
+
17
+ JBundler::Cli.start
18
+
19
+ end
@@ -50,6 +50,10 @@ module JBundler
50
50
  @gemfile ||= jbundler_env('BUNDLE_GEMFILE') || 'Gemfile'
51
51
  end
52
52
 
53
+ def classpath_file
54
+ '.jbundler/classpath.rb'
55
+ end
56
+
53
57
  def local_repository
54
58
  # use maven default local repo as default
55
59
  @local_maven_repository ||= (jbundler_env('JBUNDLE_LOCAL_REPOSITORY') ||
@@ -74,7 +78,7 @@ module JBundler
74
78
  java_import 'jbundler.Aether'
75
79
  rescue NameError
76
80
  # assume this happens only when working on the git clone
77
- raise "jbundler.jar is missing - maybe you need to build it first ?"
81
+ raise "jbundler.jar is missing - maybe you need to build it first ? try\n$ rmvn prepare-package -Dmaven.test.skip\n"
78
82
  end
79
83
  end
80
84
  java_import 'jbundler.Aether'
@@ -0,0 +1,49 @@
1
+ require 'thor'
2
+ module JBundler
3
+ class Cli < Thor
4
+ no_tasks do
5
+ def mvn
6
+ @mvn ||= Maven::RubyMaven.new
7
+ end
8
+ end
9
+
10
+ desc 'install', "first `bundle install` is called and then the jar dependencies will be installed. for more details see `bundle help install`, jbundler will ignore all options. the install command is also the default when no command is given."
11
+ def install
12
+ require 'jbundler'
13
+ puts 'Your jbundle is complete! Use `jbundle show` to see where the bundled jars are installed.'
14
+ end
15
+
16
+ desc 'update', "first `bundle update` is called and if there are no options then the jar dependencies will be updated. for more details see `bundle help update`."
17
+ def update
18
+ if ARGV.size == 1
19
+ require 'java'
20
+ require 'jbundler/aether'
21
+ config = JBundler::AetherConfig.new
22
+ FileUtils.rm_f(config.jarfile + '.lock')
23
+
24
+ require 'jbundler'
25
+ puts 'Your jbundle is updated! Use `jbundle show` to see where the bundled jars are installed.'
26
+ end
27
+ end
28
+
29
+ desc 'show', "first `bundle show` is called and if there are no options then the jar dependencies will be displayed. for more details see `bundle help show`."
30
+ def show
31
+ if ARGV.size == 1
32
+ require 'java'
33
+ require 'jbundler/aether'
34
+ require 'jbundler/classpath_file'
35
+ config = JBundler::AetherConfig.new
36
+ classpath_file = JBundler::ClasspathFile.new('.jbundler/classpath.rb')#config.classpath_file)
37
+ if classpath_file.exists?
38
+ classpath_file.require_classpath
39
+ puts "JBundler classpath:"
40
+ JBUNDLER_CLASSPATH.each do |path|
41
+ puts " * #{path}"
42
+ end
43
+ else
44
+ puts "JBundler classpath is not installed."
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,5 @@
1
+ class JBundler::Cli
2
+
3
+
4
+
5
+ end
data/lib/jbundler.jar CHANGED
Binary file
data/lib/jbundler.rb CHANGED
@@ -9,7 +9,7 @@ jarfile = Maven::Tools::Jarfile.new(config.jarfile)
9
9
  if config.skip
10
10
  warn "skip jbundler setup"
11
11
  else
12
- classpath_file = JBundler::ClasspathFile.new('.jbundler/classpath.rb')
12
+ classpath_file = JBundler::ClasspathFile.new(config.classpath_file)
13
13
  gemfile_lock = JBundler::GemfileLock.new(jarfile, config.gemfile + '.lock')
14
14
 
15
15
  if classpath_file.needs_update?(jarfile, gemfile_lock)
metadata CHANGED
@@ -1,119 +1,128 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jbundler
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
5
4
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 0
10
- version: 0.2.0
5
+ version: 0.2.1
11
6
  platform: ruby
12
7
  authors:
13
- - Kristian Meier
8
+ - Kristian Meier
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2012-06-14 00:00:00 Z
13
+ date: 2012-08-03 00:00:00 Z
19
14
  dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: ruby-maven
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - "="
27
- - !ruby/object:Gem::Version
28
- hash: 331
29
- segments:
30
- - 3
31
- - 0
32
- - 4
33
- - 0
34
- - 29
35
- - 0
36
- version: 3.0.4.0.29.0
37
- type: :runtime
38
- version_requirements: *id001
15
+ - !ruby/object:Gem::Dependency
16
+ name: ruby-maven
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 3.0.4.0.29.0
24
+ type: :runtime
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: rake
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - "="
33
+ - !ruby/object:Gem::Version
34
+ version: 0.9.2.2
35
+ type: :development
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: thor
39
+ prerelease: false
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - <
44
+ - !ruby/object:Gem::Version
45
+ version: 0.16.0
46
+ - - ">"
47
+ - !ruby/object:Gem::Version
48
+ version: 0.14.0
49
+ type: :development
50
+ version_requirements: *id003
39
51
  description: |
40
52
  using embedded maven to add jar support to bundler and add bundler like handling of version ranges to maven
41
53
 
42
54
  email:
43
- - m.kristian@web.de
44
- executables: []
45
-
55
+ - m.kristian@web.de
56
+ executables:
57
+ - jbundler
46
58
  extensions: []
47
59
 
48
60
  extra_rdoc_files: []
49
61
 
50
62
  files:
51
- - lib/jbundler.rb
52
- - lib/jbundler.rb~
53
- - lib/jbundler/maven_gemify3.rb~
54
- - lib/jbundler/pom.rb
55
- - lib/jbundler/pom.rb~
56
- - lib/jbundler/mavenfile.rb~
57
- - lib/jbundler/maven_version.rb~
58
- - lib/jbundler/classpath_file.rb
59
- - lib/jbundler/aether.rb
60
- - lib/jbundler/gemfile_lock.rb~
61
- - lib/jbundler/gemfile_lock.rb
62
- - lib/jbundler/classpath_file.rb~
63
- - lib/jbundler/aether.rb~
64
- - lib/jbundler/maven_util.rb~
65
- - lib/jbundler/maven.rb~
66
- - lib/jbundler.jar
67
- - spec/maven_util_spec.rb~
68
- - spec/mavenfile_spec.rb~
69
- - spec/pom_spec.rb~
70
- - spec/classpath_file_spec.rb~
71
- - spec/aether_spec.rb~
72
- - spec/classpath_file_spec.rb
73
- - spec/setup.rb
74
- - spec/pom_spec.rb
75
- - spec/aether_spec.rb
76
- - spec/setup.rb~
77
- - MIT-LICENSE
78
- - Build.md
79
- - Readme.md
80
- - Gemfile
81
- - Gemfile.lock
82
- - Gemfile.lock-
83
- homepage:
63
+ - bin/jbundler
64
+ - lib/jbundler.rb
65
+ - lib/jbundler.rb~
66
+ - lib/jbundler.jar
67
+ - lib/jbundler/cli.rb~
68
+ - lib/jbundler/maven_gemify3.rb~
69
+ - lib/jbundler/pom.rb
70
+ - lib/jbundler/pom.rb~
71
+ - lib/jbundler/mavenfile.rb~
72
+ - lib/jbundler/cli.rb
73
+ - lib/jbundler/maven_version.rb~
74
+ - lib/jbundler/classpath_file.rb
75
+ - lib/jbundler/aether.rb
76
+ - lib/jbundler/gemfile_lock.rb~
77
+ - lib/jbundler/gemfile_lock.rb
78
+ - lib/jbundler/classpath_file.rb~
79
+ - lib/jbundler/aether.rb~
80
+ - lib/jbundler/maven_util.rb~
81
+ - lib/jbundler/maven.rb~
82
+ - spec/maven_util_spec.rb~
83
+ - spec/mavenfile_spec.rb~
84
+ - spec/pom_spec.rb~
85
+ - spec/classpath_file_spec.rb~
86
+ - spec/aether_spec.rb~
87
+ - spec/classpath_file_spec.rb
88
+ - spec/setup.rb
89
+ - spec/pom_spec.rb
90
+ - spec/aether_spec.rb
91
+ - spec/setup.rb~
92
+ - MIT-LICENSE
93
+ - Build.md
94
+ - Readme.md
95
+ - Test.md
96
+ - Gemfile
97
+ - Gemfile.lock
98
+ homepage: https://github.com/mkristian/jbundler
84
99
  licenses: []
85
100
 
86
101
  post_install_message:
87
102
  rdoc_options: []
88
103
 
89
104
  require_paths:
90
- - lib
105
+ - lib
91
106
  required_ruby_version: !ruby/object:Gem::Requirement
92
107
  none: false
93
108
  requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- hash: 3
97
- segments:
98
- - 0
99
- version: "0"
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: "0"
100
112
  required_rubygems_version: !ruby/object:Gem::Requirement
101
113
  none: false
102
114
  requirements:
103
- - - ">="
104
- - !ruby/object:Gem::Version
105
- hash: 3
106
- segments:
107
- - 0
108
- version: "0"
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: "0"
109
118
  requirements: []
110
119
 
111
120
  rubyforge_project:
112
- rubygems_version: 1.8.21
121
+ rubygems_version: 1.8.24
113
122
  signing_key:
114
123
  specification_version: 3
115
124
  summary: bundler support for maven or/and maven support for bundler
116
125
  test_files:
117
- - spec/classpath_file_spec.rb
118
- - spec/pom_spec.rb
119
- - spec/aether_spec.rb
126
+ - spec/classpath_file_spec.rb
127
+ - spec/pom_spec.rb
128
+ - spec/aether_spec.rb
data/Gemfile.lock- DELETED
@@ -1,33 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- jbundler (0.2.0)
5
- ruby-maven (= 3.0.4.0.29.0)
6
-
7
- GEM
8
- remote: http://rubygems.org/
9
- specs:
10
- builder (3.0.0)
11
- cucumber (1.1.9)
12
- builder (>= 2.1.2)
13
- diff-lcs (>= 1.1.2)
14
- gherkin (~> 2.9.0)
15
- json (>= 1.4.6)
16
- term-ansicolor (>= 1.0.6)
17
- diff-lcs (1.1.3)
18
- gherkin (2.9.3-java)
19
- json (>= 1.4.6)
20
- json (1.7.3-java)
21
- minitest (2.10.1)
22
- ruby-maven (3.0.4.0.29.0)
23
- thor (~> 0.14.6)
24
- term-ansicolor (1.0.7)
25
- thor (0.14.6)
26
-
27
- PLATFORMS
28
- java
29
-
30
- DEPENDENCIES
31
- cucumber (~> 1.1.9)
32
- jbundler!
33
- minitest (~> 2.10.0)