jenkins-plugin-runtime 0.1.23 → 0.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,8 +41,8 @@ module Jenkins
41
41
  # Java class that represents the extension point, which gets eventually set to Descriptor.clazz
42
42
  # :with will use this java class as the type of descriptor.
43
43
  def describe_as cls, options = {}
44
- @describe_as_type = verify_java_class(cls).java_class
45
- @descriptor_is = verify_java_class(options[:with]).java_class if options[:with]
44
+ @describe_as_type = verify_java_class(cls)
45
+ @descriptor_is = verify_java_class(options[:with]) if options[:with]
46
46
  end
47
47
 
48
48
  def describe_as_type
@@ -0,0 +1,24 @@
1
+ module Jenkins::Model
2
+ module Environment
3
+ # Perform setup for a build
4
+ #
5
+ # invoked after checkout, but before any `Builder`s have been run
6
+ # @param [Jenkins::Model::Build] build the build about to run
7
+ # @param [Jenkins::Launcher] launcher a launcher for the orderly starting/stopping of processes.
8
+ # @param [Jenkins::Model::Listener] listener channel for interacting with build output console
9
+ def setup(build, launcher, listener)
10
+
11
+ end
12
+
13
+ # Optionally perform optional teardown for a build
14
+ #
15
+ # invoked after a build has run for better or for worse. It's ok if subclasses
16
+ # don't override this.
17
+ #
18
+ # @param [Jenkins::Model::Build] the build which has completed
19
+ # @param [Jenkins::Model::Listener] listener channel for interacting with build output console
20
+ def teardown(build, listener)
21
+
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,52 @@
1
+ module Jenkins::Model
2
+ module EnvironmentProxy
3
+ extend Jenkins::Plugin::Behavior
4
+
5
+ module InstanceMethods
6
+ def setUp(build, launcher, listener)
7
+ @object.setup(import(build), import(launcher), import(listener))
8
+ environment_class = self.class.environment_class || DefaultEnvironment
9
+ environment_class.new(self, @plugin, @object).tap do |env|
10
+ env.plugin = @plugin
11
+ env.impl = @object
12
+ end
13
+ rescue Jenkins::Model::Build::Halt
14
+ nil
15
+ end
16
+ end
17
+
18
+ module ClassMethods
19
+ attr_reader :environment_class
20
+
21
+ def environment_is(java_class, &block)
22
+ @environment_class = Class.new(java_class)
23
+ if block_given?
24
+ @environment_class.class_eval(&block)
25
+ end
26
+ @environment_class.class_eval do
27
+ include EnvironmentWrapper
28
+ end
29
+ end
30
+ end
31
+
32
+ module EnvironmentWrapper
33
+ attr_accessor :plugin, :impl
34
+
35
+ def tearDown(build, listener)
36
+ @impl.teardown(@plugin.import(build), @plugin.import(listener))
37
+ true
38
+ rescue Jenkins::Model::Build::Halt
39
+ false
40
+ end
41
+ end
42
+
43
+ class DefaultEnvironment < Java.hudson.model.Environment
44
+ include EnvironmentWrapper
45
+ def initialize(proxy, plugin, object)
46
+ @plugin = plugin
47
+ @object = object
48
+ end
49
+ end
50
+
51
+ end
52
+ end
@@ -116,10 +116,10 @@ module Jenkins
116
116
  # @see [Model::Describable]
117
117
  def register_describable(describable_class)
118
118
  on.start do
119
- fail "#{describable_class} is not an instance of Describable" unless describable_class.is_a? Model::Describable
120
- descriptor_class = descriptor_class.descriptor_is || Jenkins::Model::Descriptor
121
- descriptor = descriptor_class.new(ruby_class, self, describable_class.describe_as_type)
122
- @descriptors[ruby_class] = descriptor
119
+ fail "#{describable_class} is not an instance of Describable" unless describable_class < Model::Describable
120
+ descriptor_class = describable_class.descriptor_is || Jenkins::Model::Descriptor
121
+ descriptor = descriptor_class.new(describable_class, self, describable_class.describe_as_type.java_class)
122
+ @descriptors[describable_class] = descriptor
123
123
  register_extension(descriptor)
124
124
  end
125
125
  end
@@ -237,7 +237,7 @@ module Jenkins
237
237
  def callback(listener, *args)
238
238
  listener.call(*args)
239
239
  rescue Exception => e
240
- $stderr.warn "#{e.class}: #{e.message}\n#{e.backtrace.join("\n")}"
240
+ warn "#{e.class}: #{e.message}\n#{e.backtrace.join("\n")}"
241
241
  end
242
242
  end
243
243
  end
@@ -172,7 +172,7 @@ module Jenkins
172
172
  end
173
173
 
174
174
  require 'jenkins/model/describable'
175
- ["action", "build_wrapper", "builder", "publisher", "root_action"].each do |proxy|
175
+ ["action", "builder", "publisher", "root_action"].each do |proxy|
176
176
  require "jenkins/plugin/proxies/#{proxy}"
177
177
  end
178
178
 
@@ -8,6 +8,8 @@ require 'jenkins/plugin/proxies/describable'
8
8
  require 'jenkins/plugin/proxies'
9
9
  require 'jenkins/cli/command'
10
10
  require 'jenkins/model'
11
+ require 'jenkins/model/environment'
12
+ require 'jenkins/model/environment_proxy'
11
13
  require 'jenkins/model/action'
12
14
  require 'jenkins/model/root_action'
13
15
  require 'jenkins/model/build'
@@ -16,6 +18,9 @@ require 'jenkins/model/listener'
16
18
  require 'jenkins/slaves/cloud'
17
19
  require 'jenkins/tasks/builder'
18
20
  require 'jenkins/tasks/build_wrapper'
21
+ require 'jenkins/tasks/build_wrapper_proxy'
19
22
  require 'jenkins/launcher'
20
23
  require 'jenkins/listeners/run_listener'
21
24
  require 'jenkins/listeners/run_listener_proxy'
25
+ require 'jenkins/slaves/node_property'
26
+ require 'jenkins/slaves/node_property_proxy'
@@ -1,7 +1,7 @@
1
1
  module Jenkins
2
2
  class Plugin
3
3
  module Runtime
4
- VERSION = "0.1.23"
4
+ VERSION = "0.1.24"
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,16 @@
1
+ module Jenkins::Slaves
2
+ class NodeProperty
3
+ include Jenkins::Model
4
+ include Jenkins::Model::Environment
5
+ include Jenkins::Model::Describable
6
+
7
+ class NodePropertyDescriptor < Java.hudson.slaves.NodePropertyDescriptor
8
+ include Jenkins::Model::RubyDescriptor
9
+
10
+ def isApplicable(targetType)
11
+ true
12
+ end
13
+ end
14
+ describe_as Java.hudson.slaves.NodeProperty, :with => NodePropertyDescriptor
15
+ end
16
+ end
@@ -0,0 +1,7 @@
1
+ module Jenkins::Slaves
2
+ class NodePropertyProxy < Java.hudson.slaves.NodeProperty
3
+ include Jenkins::Model::EnvironmentProxy
4
+ include Jenkins::Plugin::Proxies::Describable
5
+ proxy_for NodeProperty
6
+ end
7
+ end
@@ -7,30 +7,9 @@ module Jenkins
7
7
  # {http://javadoc.jenkins-ci.org/hudson/tasks/BuildWrapper.html}
8
8
  class BuildWrapper
9
9
  include Jenkins::Model
10
+ include Jenkins::Model::Environment
10
11
  include Jenkins::Model::Describable
11
-
12
12
  describe_as Java.hudson.tasks.BuildWrapper
13
-
14
- # Perform setup for a build
15
- #
16
- # invoked after checkout, but before any `Builder`s have been run
17
- # @param [Jenkins::Model::Build] build the build about to run
18
- # @param [Jenkins::Launcher] launcher a launcher for the orderly starting/stopping of processes.
19
- # @param [Jenkins::Model::Listener] listener channel for interacting with build output console
20
- def setup(build, launcher, listener)
21
-
22
- end
23
-
24
- # Optionally perform optional teardown for a build
25
- #
26
- # invoked after a build has run for better or for worse. It's ok if subclasses
27
- # don't override this.
28
- #
29
- # @param [Jenkins::Model::Build] the build which has completed
30
- # @param [Jenkins::Model::Listener] listener channel for interacting with build output console
31
- def teardown(build, listener)
32
-
33
- end
34
13
  end
35
14
  end
36
15
  end
@@ -0,0 +1,15 @@
1
+ module Jenkins::Tasks
2
+ class BuildWrapperProxy < Java.hudson.tasks.BuildWrapper
3
+ include Jenkins::Plugin::Proxies::Describable
4
+ proxy_for Jenkins::Tasks::BuildWrapper
5
+
6
+ include Jenkins::Model::EnvironmentProxy
7
+
8
+ # BuildWrapper needs a custom Environment class, not sure why
9
+ environment_is Java.hudson.tasks.BuildWrapper::Environment do
10
+ def initialize(proxy, plugin, object)
11
+ super(proxy)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -40,7 +40,7 @@ describe Jenkins::Model::Describable do
40
40
  end
41
41
 
42
42
  it "has the same java type as its superclass" do
43
- @subclass.describe_as_type.should eql java.lang.Object.java_class
43
+ @subclass.describe_as_type.should eql java.lang.Object
44
44
  end
45
45
 
46
46
  describe ". a sub-subclass" do
@@ -51,9 +51,9 @@ describe Jenkins::Model::Describable do
51
51
  it "is also registered as an extension of the original java type" do
52
52
  @plugin.should have_received(:register_describable).with(@subsubclass)
53
53
  end
54
-
54
+
55
55
  it 'inherits its describe_as_type' do
56
- @subsubclass.describe_as_type.should eql java.lang.Object.java_class
56
+ @subsubclass.describe_as_type.should eql java.lang.Object
57
57
  end
58
58
  end
59
59
  end
@@ -70,7 +70,7 @@ describe Jenkins::Model::Describable do
70
70
  lambda {@class.describe_as java.lang.Object, :with => Object}.should raise_error(Jenkins::Model::Describable::DescribableError)
71
71
  end
72
72
  it "inherits the descriptor type" do
73
- @subclass.descriptor_is.should eql java.lang.String.java_class
73
+ @subclass.descriptor_is.should eql java.lang.String
74
74
  end
75
75
  end
76
76
  end
@@ -1,15 +1,15 @@
1
1
 
2
2
  require 'spec_helper'
3
3
 
4
- describe Jenkins::Plugin::Proxies::BuildWrapper do
4
+ describe Jenkins::Tasks::BuildWrapperProxy do
5
5
  include ProxyHelper
6
6
 
7
- subject {Jenkins::Plugin::Proxies::BuildWrapper}
7
+ subject {Jenkins::Tasks::BuildWrapperProxy}
8
8
  it {should be_transient(:plugin)}
9
9
 
10
10
  before do
11
11
  @object = mock(Jenkins::Tasks::BuildWrapper)
12
- @wrapper = Jenkins::Plugin::Proxies::BuildWrapper.new(@plugin, @object)
12
+ @wrapper = Jenkins::Tasks::BuildWrapperProxy.new(@plugin, @object)
13
13
  end
14
14
 
15
15
  it "passes in an env file which will be called to " do
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: jenkins-plugin-runtime
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.23
5
+ version: 0.1.24
6
6
  platform: ruby
7
7
  authors:
8
8
  - Charles Lowell
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-02-02 00:00:00 Z
13
+ date: 2012-02-03 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -106,6 +106,8 @@ files:
106
106
  - lib/jenkins/model/build.rb
107
107
  - lib/jenkins/model/describable.rb
108
108
  - lib/jenkins/model/descriptor.rb
109
+ - lib/jenkins/model/environment.rb
110
+ - lib/jenkins/model/environment_proxy.rb
109
111
  - lib/jenkins/model/listener.rb
110
112
  - lib/jenkins/model/root_action.rb
111
113
  - lib/jenkins/plugin.rb
@@ -113,7 +115,6 @@ files:
113
115
  - lib/jenkins/plugin/proxies.rb
114
116
  - lib/jenkins/plugin/proxies/action.rb
115
117
  - lib/jenkins/plugin/proxies/build_step.rb
116
- - lib/jenkins/plugin/proxies/build_wrapper.rb
117
118
  - lib/jenkins/plugin/proxies/builder.rb
118
119
  - lib/jenkins/plugin/proxies/describable.rb
119
120
  - lib/jenkins/plugin/proxies/publisher.rb
@@ -125,8 +126,11 @@ files:
125
126
  - lib/jenkins/plugin/wrapper.rb
126
127
  - lib/jenkins/rack.rb
127
128
  - lib/jenkins/slaves/cloud.rb
129
+ - lib/jenkins/slaves/node_property.rb
130
+ - lib/jenkins/slaves/node_property_proxy.rb
128
131
  - lib/jenkins/tasks/build_step.rb
129
132
  - lib/jenkins/tasks/build_wrapper.rb
133
+ - lib/jenkins/tasks/build_wrapper_proxy.rb
130
134
  - lib/jenkins/tasks/builder.rb
131
135
  - lib/jenkins/tasks/publisher.rb
132
136
  - spec/jenkins/cli/command_proxy_spec.rb
@@ -141,7 +145,6 @@ files:
141
145
  - spec/jenkins/model_spec.rb
142
146
  - spec/jenkins/plugin/behavior_spec.rb
143
147
  - spec/jenkins/plugin/example.pluginspec
144
- - spec/jenkins/plugin/proxies/build_wrapper_spec.rb
145
148
  - spec/jenkins/plugin/proxies/builder_spec.rb
146
149
  - spec/jenkins/plugin/proxies/proxy_helper.rb
147
150
  - spec/jenkins/plugin/proxies/publisher_spec.rb
@@ -150,6 +153,7 @@ files:
150
153
  - spec/jenkins/plugin/proxy_spec.rb
151
154
  - spec/jenkins/plugin/specification_spec.rb
152
155
  - spec/jenkins/plugin_spec.rb
156
+ - spec/jenkins/tasks/build_wrapper_proxy_spec.rb
153
157
  - spec/jenkins/tasks/build_wrapper_spec.rb
154
158
  - spec/jenkins/tasks/builder_spec.rb
155
159
  - spec/spec_helper.rb
@@ -195,7 +199,6 @@ test_files:
195
199
  - spec/jenkins/model_spec.rb
196
200
  - spec/jenkins/plugin/behavior_spec.rb
197
201
  - spec/jenkins/plugin/example.pluginspec
198
- - spec/jenkins/plugin/proxies/build_wrapper_spec.rb
199
202
  - spec/jenkins/plugin/proxies/builder_spec.rb
200
203
  - spec/jenkins/plugin/proxies/proxy_helper.rb
201
204
  - spec/jenkins/plugin/proxies/publisher_spec.rb
@@ -204,6 +207,7 @@ test_files:
204
207
  - spec/jenkins/plugin/proxy_spec.rb
205
208
  - spec/jenkins/plugin/specification_spec.rb
206
209
  - spec/jenkins/plugin_spec.rb
210
+ - spec/jenkins/tasks/build_wrapper_proxy_spec.rb
207
211
  - spec/jenkins/tasks/build_wrapper_spec.rb
208
212
  - spec/jenkins/tasks/builder_spec.rb
209
213
  - spec/spec_helper.rb
@@ -1,49 +0,0 @@
1
-
2
- require 'jenkins/tasks/build_wrapper'
3
- require 'jenkins/model/build'
4
-
5
- module Jenkins
6
- class Plugin
7
- class Proxies
8
-
9
- ##
10
- # Binds the Java hudson.tasks.BuildWrapper API to the idomatic
11
- # Ruby API Jenkins::Tasks::BuildWrapper
12
-
13
- class BuildWrapper < Java.hudson.tasks.BuildWrapper
14
- include Describable
15
- proxy_for Jenkins::Tasks::BuildWrapper
16
-
17
- def setUp(build, launcher, listener)
18
- @object.setup(import(build), import(launcher), import(listener))
19
- EnvironmentWrapper.new(self, @plugin, @object)
20
- rescue Jenkins::Model::Build::Halt
21
- nil
22
- end
23
- end
24
-
25
-
26
- class EnvironmentWrapper < Java.hudson.tasks.BuildWrapper::Environment
27
- attr_accessor :env
28
-
29
- def initialize(build_wrapper, plugin, impl)
30
- super(build_wrapper)
31
- @plugin = plugin
32
- @impl = impl
33
- end
34
-
35
- # build wrapper that created this environment
36
- def build_wrapper
37
- @impl
38
- end
39
-
40
- def tearDown(build, listener)
41
- @impl.teardown(@plugin.import(build), @plugin.import(listener))
42
- true
43
- rescue Jenkins::Model::Build::Halt
44
- false
45
- end
46
- end
47
- end
48
- end
49
- end