openhab-scripting 2.9.1 → 2.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/lib/openhab/version.rb +1 -1
  3. metadata +1 -61
  4. data/.github/workflows/workflow.yml +0 -327
  5. data/.gitignore +0 -17
  6. data/.java-version +0 -1
  7. data/.rspec +0 -1
  8. data/.yardopts +0 -1
  9. data/CHANGELOG.md +0 -113
  10. data/Gemfile +0 -28
  11. data/Gemfile.lock +0 -245
  12. data/Guardfile +0 -35
  13. data/LICENSE +0 -277
  14. data/README.md +0 -23
  15. data/Rakefile +0 -406
  16. data/bin/console +0 -15
  17. data/bin/setup +0 -8
  18. data/config/userdata/config/org/openhab/restauth.config +0 -3
  19. data/cucumber.yml +0 -1
  20. data/docs/_config.yml +0 -135
  21. data/docs/contributing/index.md +0 -47
  22. data/docs/examples/conversions.md +0 -123
  23. data/docs/examples/index.md +0 -61
  24. data/docs/index.md +0 -19
  25. data/docs/installation/index.md +0 -26
  26. data/docs/motivation/index.md +0 -27
  27. data/docs/usage/execution.md +0 -9
  28. data/docs/usage/execution/delay.md +0 -48
  29. data/docs/usage/execution/otherwise.md +0 -30
  30. data/docs/usage/execution/run.md +0 -70
  31. data/docs/usage/execution/triggered.md +0 -48
  32. data/docs/usage/guards.md +0 -51
  33. data/docs/usage/guards/between.md +0 -30
  34. data/docs/usage/guards/not_if.md +0 -41
  35. data/docs/usage/guards/only_if.md +0 -40
  36. data/docs/usage/index.md +0 -11
  37. data/docs/usage/items.md +0 -66
  38. data/docs/usage/items/contact.md +0 -84
  39. data/docs/usage/items/dimmer.md +0 -147
  40. data/docs/usage/items/groups.md +0 -76
  41. data/docs/usage/items/number.md +0 -225
  42. data/docs/usage/items/string.md +0 -49
  43. data/docs/usage/items/switch.md +0 -85
  44. data/docs/usage/misc.md +0 -7
  45. data/docs/usage/misc/actions.md +0 -108
  46. data/docs/usage/misc/duration.md +0 -21
  47. data/docs/usage/misc/gems.md +0 -25
  48. data/docs/usage/misc/logging.md +0 -21
  49. data/docs/usage/misc/metadata.md +0 -128
  50. data/docs/usage/misc/store_states.md +0 -42
  51. data/docs/usage/misc/time_of_day.md +0 -69
  52. data/docs/usage/misc/timers.md +0 -67
  53. data/docs/usage/rule.md +0 -43
  54. data/docs/usage/things.md +0 -29
  55. data/docs/usage/triggers.md +0 -8
  56. data/docs/usage/triggers/changed.md +0 -57
  57. data/docs/usage/triggers/channel.md +0 -54
  58. data/docs/usage/triggers/command.md +0 -69
  59. data/docs/usage/triggers/cron.md +0 -19
  60. data/docs/usage/triggers/every.md +0 -76
  61. data/docs/usage/triggers/updated.md +0 -78
  62. data/openhab-scripting.gemspec +0 -30
  63. data/openhab_rules/warmup.rb +0 -5
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --require spec_helper
data/.yardopts DELETED
@@ -1 +0,0 @@
1
- --output-dir docs/yard
@@ -1,113 +0,0 @@
1
- # JRuby OpenHAB Scripting change log
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- Project versioning adheres to [Semantic Versioning](http://semver.org/). <br>
6
- Commit convention is based on [Conventional Commits](http://conventionalcommits.org). <br>
7
- Change log format is based on [Keep a Changelog](http://keepachangelog.com/). <br>
8
-
9
- ## 2.9.0
10
- ### Added
11
- - Support OpenHAB Actions
12
-
13
- ## 2.8.1
14
- ### Fixed
15
- - Fixed StringItem comparison against a string
16
-
17
- ## 2.8.0
18
- ### Added
19
- - Support for accessing item metadata namespace, value, and configuration
20
-
21
- ## 2.7.0
22
- ### Added
23
- - SwitchItem.toggle to toggle a SwitchItem similar to SwitchItem << !SwitchItem
24
-
25
- ## 2.6.1
26
- ### Fixed
27
- - Race condition with `after` block
28
- - Unknown constant error in certain cases uses `between` blocks
29
-
30
- ## 2.6.0
31
- ### Added
32
- - `TimeOfDay.between?` to check if TimeOfDay object is between supplied range
33
- ### Fixed
34
- - Reference in rules to TimeOfDay::ALL_DAY
35
-
36
-
37
- ## 2.5.1
38
- ### Fixed
39
- - Corrected time of day parsing to be case insensitive
40
- - Merge conflict
41
-
42
- ## 2.5.0
43
- ### Added
44
- - `between` can be used throughout rules systems
45
- #### Changed
46
- - TimeOfDay parsing now supports AM/PM
47
-
48
- ## 2.4.0
49
- ### Added
50
- - Support to allow comparison of TimeOfDay objects against strings
51
- - Support for storing and restoring Item states
52
-
53
- ## 2.3.0
54
- ### Added
55
- - Support for rule description
56
-
57
- ## 2.2.1
58
- ### Fixed
59
- - `!` operator on SwitchItems now returns ON if item is UNDEF or NULL
60
-
61
- ## 2.2.0
62
- ### Added
63
- - Support for thing triggers in rules
64
-
65
- ### Changed
66
- - Updated docs to point to OpenHAB document for script locations
67
-
68
- ## 2.1.0
69
- ### Added
70
- - Timer delegate for 'active?', 'running?', 'terminated?'
71
-
72
- ## 2.0.1
73
- ### Fixed
74
- - Logging of mod and/or inputs can cause an exception of they are nil
75
- - Timers (after) now available inside of rules
76
-
77
- ### Changed
78
- - DSL imports now shared by OpenHAB module and Rules Module
79
-
80
- ## 2.0.0
81
- ### Added
82
- - Timer delegate for `after` method that supports reschedule
83
-
84
- ### Changed
85
- - **Breaking:** `after` now returns a ruby Timer delegate
86
-
87
- ## 1.1.0
88
- ### Added
89
- - Added support for channels triggers to rules
90
-
91
- ### Changed
92
- - Fixed documentation for changed/updated/receive_command options
93
-
94
- ## 1.0.0
95
- ### Changed
96
- - **Breaking:** Changed commanded method for rules to received_command
97
-
98
- ## 0.2.0
99
- ### Added
100
- - Ability to execute rules based on commands sent to items, groups and group members
101
- - Ability to send updates from item objects
102
-
103
- ### Changed
104
- - Fixed documentation for comparing dimensioned items against strings
105
-
106
- ## 0.1.0
107
- ### Added
108
- - Support for item updates within rules languages
109
- ### Changed
110
- - Installation instructions to specify using latest release rather than a specific version
111
-
112
- ## 0.0.1
113
- - Initial release
data/Gemfile DELETED
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- # Specify your gem's dependencies in openhab-scripting.gemspec
6
- gemspec
7
-
8
- group :test do
9
- gem 'cucumber'
10
- gem 'cuke_linter', '~> 1.2'
11
- gem 'httparty'
12
- gem 'persistent_httparty'
13
- gem 'rspec'
14
- gem 'yaml-lint'
15
- end
16
-
17
- group :development do
18
- gem 'guard-shell'
19
- gem 'guard-yard'
20
- gem 'jekyll', '~> 4.2', require: false
21
- gem 'just-the-docs', '~> 0.3'
22
- gem 'kramdown-parser-gfm'
23
- gem 'process_exists'
24
- gem 'rake', '~> 12.0'
25
- gem 'rubocop', '~> 1.8', require: false
26
- gem 'tty-command'
27
- gem 'yard'
28
- end
@@ -1,245 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- openhab-scripting (2.9.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- activesupport (6.0.3.4)
10
- concurrent-ruby (~> 1.0, >= 1.0.2)
11
- i18n (>= 0.7, < 2)
12
- minitest (~> 5.1)
13
- tzinfo (~> 1.1)
14
- zeitwerk (~> 2.2, >= 2.2.2)
15
- addressable (2.7.0)
16
- public_suffix (>= 2.0.2, < 5.0)
17
- ast (2.4.1)
18
- builder (3.2.4)
19
- coderay (1.1.3)
20
- colorator (1.1.0)
21
- concurrent-ruby (1.1.7)
22
- cucumber (5.2.0)
23
- builder (~> 3.2, >= 3.2.4)
24
- cucumber-core (~> 8.0, >= 8.0.1)
25
- cucumber-create-meta (~> 2.0, >= 2.0.2)
26
- cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
27
- cucumber-gherkin (~> 15.0, >= 15.0.2)
28
- cucumber-html-formatter (~> 9.0, >= 9.0.0)
29
- cucumber-messages (~> 13.1, >= 13.1.0)
30
- cucumber-wire (~> 4.0, >= 4.0.1)
31
- diff-lcs (~> 1.4, >= 1.4.4)
32
- multi_test (~> 0.1, >= 0.1.2)
33
- sys-uname (~> 1.2, >= 1.2.1)
34
- cucumber-core (8.0.1)
35
- cucumber-gherkin (~> 15.0, >= 15.0.2)
36
- cucumber-messages (~> 13.0, >= 13.0.1)
37
- cucumber-tag-expressions (~> 2.0, >= 2.0.4)
38
- cucumber-create-meta (2.0.4)
39
- cucumber-messages (~> 13.1, >= 13.1.0)
40
- sys-uname (~> 1.2, >= 1.2.1)
41
- cucumber-cucumber-expressions (10.3.0)
42
- cucumber-gherkin (15.0.2)
43
- cucumber-messages (~> 13.0, >= 13.0.1)
44
- cucumber-html-formatter (9.0.0)
45
- cucumber-messages (~> 13.0, >= 13.0.1)
46
- cucumber-messages (13.2.1)
47
- protobuf-cucumber (~> 3.10, >= 3.10.8)
48
- cucumber-tag-expressions (2.0.4)
49
- cucumber-wire (4.0.1)
50
- cucumber-core (~> 8.0, >= 8.0.1)
51
- cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
52
- cucumber-messages (~> 13.0, >= 13.0.1)
53
- cuke_linter (1.2.0)
54
- cuke_modeler (>= 1.5, < 4.0)
55
- cuke_modeler (3.6.0)
56
- cucumber-gherkin (< 17.0)
57
- diff-lcs (1.4.4)
58
- em-websocket (0.5.2)
59
- eventmachine (>= 0.12.9)
60
- http_parser.rb (~> 0.6.0)
61
- eventmachine (1.2.7)
62
- eventmachine (1.2.7-java)
63
- ffi (1.13.1)
64
- ffi (1.13.1-java)
65
- formatador (0.2.5)
66
- forwardable-extended (2.6.0)
67
- gene_pool (1.5.0)
68
- concurrent-ruby (>= 1.0)
69
- guard (2.16.2)
70
- formatador (>= 0.2.4)
71
- listen (>= 2.7, < 4.0)
72
- lumberjack (>= 1.0.12, < 2.0)
73
- nenv (~> 0.1)
74
- notiffany (~> 0.0)
75
- pry (>= 0.9.12)
76
- shellany (~> 0.0)
77
- thor (>= 0.18.1)
78
- guard-compat (1.2.1)
79
- guard-shell (0.7.1)
80
- guard (>= 2.0.0)
81
- guard-compat (~> 1.0)
82
- guard-yard (2.2.1)
83
- guard (>= 1.1.0)
84
- yard (>= 0.7.0)
85
- http_parser.rb (0.6.0)
86
- http_parser.rb (0.6.0-java)
87
- httparty (0.18.1)
88
- mime-types (~> 3.0)
89
- multi_xml (>= 0.5.2)
90
- i18n (1.8.5)
91
- concurrent-ruby (~> 1.0)
92
- jekyll (4.2.0)
93
- addressable (~> 2.4)
94
- colorator (~> 1.0)
95
- em-websocket (~> 0.5)
96
- i18n (~> 1.0)
97
- jekyll-sass-converter (~> 2.0)
98
- jekyll-watch (~> 2.0)
99
- kramdown (~> 2.3)
100
- kramdown-parser-gfm (~> 1.0)
101
- liquid (~> 4.0)
102
- mercenary (~> 0.4.0)
103
- pathutil (~> 0.9)
104
- rouge (~> 3.0)
105
- safe_yaml (~> 1.0)
106
- terminal-table (~> 2.0)
107
- jekyll-sass-converter (2.1.0)
108
- sassc (> 2.0.1, < 3.0)
109
- jekyll-seo-tag (2.7.1)
110
- jekyll (>= 3.8, < 5.0)
111
- jekyll-watch (2.2.1)
112
- listen (~> 3.0)
113
- just-the-docs (0.3.3)
114
- jekyll (>= 3.8.5)
115
- jekyll-seo-tag (~> 2.0)
116
- rake (>= 12.3.1, < 13.1.0)
117
- kramdown (2.3.0)
118
- rexml
119
- kramdown-parser-gfm (1.1.0)
120
- kramdown (~> 2.0)
121
- liquid (4.0.3)
122
- listen (3.4.1)
123
- rb-fsevent (~> 0.10, >= 0.10.3)
124
- rb-inotify (~> 0.9, >= 0.9.10)
125
- lumberjack (1.2.8)
126
- mercenary (0.4.0)
127
- method_source (1.0.0)
128
- middleware (0.1.0)
129
- mime-types (3.3.1)
130
- mime-types-data (~> 3.2015)
131
- mime-types-data (3.2020.1104)
132
- minitest (5.14.2)
133
- multi_test (0.1.2)
134
- multi_xml (0.6.0)
135
- nenv (0.3.0)
136
- notiffany (0.1.3)
137
- nenv (~> 0.1)
138
- shellany (~> 0.0)
139
- parallel (1.20.1)
140
- parser (3.0.0.0)
141
- ast (~> 2.4.1)
142
- pastel (0.8.0)
143
- tty-color (~> 0.5)
144
- pathutil (0.16.2)
145
- forwardable-extended (~> 2.6)
146
- persistent_http (1.0.6)
147
- gene_pool (>= 1.3)
148
- persistent_httparty (0.1.2)
149
- httparty (~> 0.9)
150
- persistent_http (< 2)
151
- process_exists (0.2.0)
152
- protobuf-cucumber (3.10.8)
153
- activesupport (>= 3.2)
154
- middleware
155
- thor
156
- thread_safe
157
- pry (0.13.1)
158
- coderay (~> 1.1)
159
- method_source (~> 1.0)
160
- pry (0.13.1-java)
161
- coderay (~> 1.1)
162
- method_source (~> 1.0)
163
- spoon (~> 0.0)
164
- public_suffix (4.0.6)
165
- rainbow (3.0.0)
166
- rake (12.3.3)
167
- rb-fsevent (0.10.4)
168
- rb-inotify (0.10.1)
169
- ffi (~> 1.0)
170
- regexp_parser (2.0.3)
171
- rexml (3.2.4)
172
- rouge (3.26.0)
173
- rspec (3.10.0)
174
- rspec-core (~> 3.10.0)
175
- rspec-expectations (~> 3.10.0)
176
- rspec-mocks (~> 3.10.0)
177
- rspec-core (3.10.0)
178
- rspec-support (~> 3.10.0)
179
- rspec-expectations (3.10.0)
180
- diff-lcs (>= 1.2.0, < 2.0)
181
- rspec-support (~> 3.10.0)
182
- rspec-mocks (3.10.0)
183
- diff-lcs (>= 1.2.0, < 2.0)
184
- rspec-support (~> 3.10.0)
185
- rspec-support (3.10.0)
186
- rubocop (1.8.1)
187
- parallel (~> 1.10)
188
- parser (>= 3.0.0.0)
189
- rainbow (>= 2.2.2, < 4.0)
190
- regexp_parser (>= 1.8, < 3.0)
191
- rexml
192
- rubocop-ast (>= 1.2.0, < 2.0)
193
- ruby-progressbar (~> 1.7)
194
- unicode-display_width (>= 1.4.0, < 3.0)
195
- rubocop-ast (1.4.0)
196
- parser (>= 2.7.1.5)
197
- ruby-progressbar (1.11.0)
198
- safe_yaml (1.0.5)
199
- sassc (2.4.0)
200
- ffi (~> 1.9)
201
- shellany (0.0.1)
202
- spoon (0.0.6)
203
- ffi
204
- sys-uname (1.2.2)
205
- ffi (~> 1.1)
206
- terminal-table (2.0.0)
207
- unicode-display_width (~> 1.1, >= 1.1.1)
208
- thor (1.0.1)
209
- thread_safe (0.3.6)
210
- thread_safe (0.3.6-java)
211
- tty-color (0.6.0)
212
- tty-command (0.10.0)
213
- pastel (~> 0.8)
214
- tzinfo (1.2.8)
215
- thread_safe (~> 0.1)
216
- unicode-display_width (1.7.0)
217
- yaml-lint (0.0.10)
218
- yard (0.9.25)
219
- zeitwerk (2.4.1)
220
-
221
- PLATFORMS
222
- java
223
- ruby
224
-
225
- DEPENDENCIES
226
- cucumber
227
- cuke_linter (~> 1.2)
228
- guard-shell
229
- guard-yard
230
- httparty
231
- jekyll (~> 4.2)
232
- just-the-docs (~> 0.3)
233
- kramdown-parser-gfm
234
- openhab-scripting!
235
- persistent_httparty
236
- process_exists
237
- rake (~> 12.0)
238
- rspec
239
- rubocop (~> 1.8)
240
- tty-command
241
- yaml-lint
242
- yard
243
-
244
- BUNDLED WITH
245
- 2.2.4
data/Guardfile DELETED
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # A sample Guardfile
4
- # More info at https://github.com/guard/guard#readme
5
-
6
- ## Uncomment and set this to only include directories you want to watch
7
- # directories %w(app lib config test spec features) \
8
- # .select{|d| Dir.exist?(d) ? d : UI.warning("Directory #{d} does not exist")}
9
-
10
- ## Note: if you are using the `directories` clause above and you are not
11
- ## watching the project directory ('.'), then you will want to move
12
- ## the Guardfile to a watched dir and symlink it back, e.g.
13
- #
14
- # $ mkdir config
15
- # $ mv Guardfile config/
16
- # $ ln -s config/Guardfile .
17
- #
18
- # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
19
-
20
- group :docs do
21
- guard 'yard' do
22
- watch(%r{app/.+\.rb})
23
- watch(%r{lib/.+\.rb})
24
- watch(%r{ext/.+\.c})
25
- end
26
-
27
- # Add files and commands to this file, like the example:
28
- # watch(%r{file/path}) { `command(s)` }
29
- #
30
- guard :shell do
31
- watch(%r{lib/.+\.rb}) do |_modified|
32
- `yard stats --list-undoc`
33
- end
34
- end
35
- end
data/LICENSE DELETED
@@ -1,277 +0,0 @@
1
- Eclipse Public License - v 2.0
2
-
3
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
4
- PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
5
- OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
6
-
7
- 1. DEFINITIONS
8
-
9
- "Contribution" means:
10
-
11
- a) in the case of the initial Contributor, the initial content
12
- Distributed under this Agreement, and
13
-
14
- b) in the case of each subsequent Contributor:
15
- i) changes to the Program, and
16
- ii) additions to the Program;
17
- where such changes and/or additions to the Program originate from
18
- and are Distributed by that particular Contributor. A Contribution
19
- "originates" from a Contributor if it was added to the Program by
20
- such Contributor itself or anyone acting on such Contributor's behalf.
21
- Contributions do not include changes or additions to the Program that
22
- are not Modified Works.
23
-
24
- "Contributor" means any person or entity that Distributes the Program.
25
-
26
- "Licensed Patents" mean patent claims licensable by a Contributor which
27
- are necessarily infringed by the use or sale of its Contribution alone
28
- or when combined with the Program.
29
-
30
- "Program" means the Contributions Distributed in accordance with this
31
- Agreement.
32
-
33
- "Recipient" means anyone who receives the Program under this Agreement
34
- or any Secondary License (as applicable), including Contributors.
35
-
36
- "Derivative Works" shall mean any work, whether in Source Code or other
37
- form, that is based on (or derived from) the Program and for which the
38
- editorial revisions, annotations, elaborations, or other modifications
39
- represent, as a whole, an original work of authorship.
40
-
41
- "Modified Works" shall mean any work in Source Code or other form that
42
- results from an addition to, deletion from, or modification of the
43
- contents of the Program, including, for purposes of clarity any new file
44
- in Source Code form that contains any contents of the Program. Modified
45
- Works shall not include works that contain only declarations,
46
- interfaces, types, classes, structures, or files of the Program solely
47
- in each case in order to link to, bind by name, or subclass the Program
48
- or Modified Works thereof.
49
-
50
- "Distribute" means the acts of a) distributing or b) making available
51
- in any manner that enables the transfer of a copy.
52
-
53
- "Source Code" means the form of a Program preferred for making
54
- modifications, including but not limited to software source code,
55
- documentation source, and configuration files.
56
-
57
- "Secondary License" means either the GNU General Public License,
58
- Version 2.0, or any later versions of that license, including any
59
- exceptions or additional permissions as identified by the initial
60
- Contributor.
61
-
62
- 2. GRANT OF RIGHTS
63
-
64
- a) Subject to the terms of this Agreement, each Contributor hereby
65
- grants Recipient a non-exclusive, worldwide, royalty-free copyright
66
- license to reproduce, prepare Derivative Works of, publicly display,
67
- publicly perform, Distribute and sublicense the Contribution of such
68
- Contributor, if any, and such Derivative Works.
69
-
70
- b) Subject to the terms of this Agreement, each Contributor hereby
71
- grants Recipient a non-exclusive, worldwide, royalty-free patent
72
- license under Licensed Patents to make, use, sell, offer to sell,
73
- import and otherwise transfer the Contribution of such Contributor,
74
- if any, in Source Code or other form. This patent license shall
75
- apply to the combination of the Contribution and the Program if, at
76
- the time the Contribution is added by the Contributor, such addition
77
- of the Contribution causes such combination to be covered by the
78
- Licensed Patents. The patent license shall not apply to any other
79
- combinations which include the Contribution. No hardware per se is
80
- licensed hereunder.
81
-
82
- c) Recipient understands that although each Contributor grants the
83
- licenses to its Contributions set forth herein, no assurances are
84
- provided by any Contributor that the Program does not infringe the
85
- patent or other intellectual property rights of any other entity.
86
- Each Contributor disclaims any liability to Recipient for claims
87
- brought by any other entity based on infringement of intellectual
88
- property rights or otherwise. As a condition to exercising the
89
- rights and licenses granted hereunder, each Recipient hereby
90
- assumes sole responsibility to secure any other intellectual
91
- property rights needed, if any. For example, if a third party
92
- patent license is required to allow Recipient to Distribute the
93
- Program, it is Recipient's responsibility to acquire that license
94
- before distributing the Program.
95
-
96
- d) Each Contributor represents that to its knowledge it has
97
- sufficient copyright rights in its Contribution, if any, to grant
98
- the copyright license set forth in this Agreement.
99
-
100
- e) Notwithstanding the terms of any Secondary License, no
101
- Contributor makes additional grants to any Recipient (other than
102
- those set forth in this Agreement) as a result of such Recipient's
103
- receipt of the Program under the terms of a Secondary License
104
- (if permitted under the terms of Section 3).
105
-
106
- 3. REQUIREMENTS
107
-
108
- 3.1 If a Contributor Distributes the Program in any form, then:
109
-
110
- a) the Program must also be made available as Source Code, in
111
- accordance with section 3.2, and the Contributor must accompany
112
- the Program with a statement that the Source Code for the Program
113
- is available under this Agreement, and informs Recipients how to
114
- obtain it in a reasonable manner on or through a medium customarily
115
- used for software exchange; and
116
-
117
- b) the Contributor may Distribute the Program under a license
118
- different than this Agreement, provided that such license:
119
- i) effectively disclaims on behalf of all other Contributors all
120
- warranties and conditions, express and implied, including
121
- warranties or conditions of title and non-infringement, and
122
- implied warranties or conditions of merchantability and fitness
123
- for a particular purpose;
124
-
125
- ii) effectively excludes on behalf of all other Contributors all
126
- liability for damages, including direct, indirect, special,
127
- incidental and consequential damages, such as lost profits;
128
-
129
- iii) does not attempt to limit or alter the recipients' rights
130
- in the Source Code under section 3.2; and
131
-
132
- iv) requires any subsequent distribution of the Program by any
133
- party to be under a license that satisfies the requirements
134
- of this section 3.
135
-
136
- 3.2 When the Program is Distributed as Source Code:
137
-
138
- a) it must be made available under this Agreement, or if the
139
- Program (i) is combined with other material in a separate file or
140
- files made available under a Secondary License, and (ii) the initial
141
- Contributor attached to the Source Code the notice described in
142
- Exhibit A of this Agreement, then the Program may be made available
143
- under the terms of such Secondary Licenses, and
144
-
145
- b) a copy of this Agreement must be included with each copy of
146
- the Program.
147
-
148
- 3.3 Contributors may not remove or alter any copyright, patent,
149
- trademark, attribution notices, disclaimers of warranty, or limitations
150
- of liability ("notices") contained within the Program from any copy of
151
- the Program which they Distribute, provided that Contributors may add
152
- their own appropriate notices.
153
-
154
- 4. COMMERCIAL DISTRIBUTION
155
-
156
- Commercial distributors of software may accept certain responsibilities
157
- with respect to end users, business partners and the like. While this
158
- license is intended to facilitate the commercial use of the Program,
159
- the Contributor who includes the Program in a commercial product
160
- offering should do so in a manner which does not create potential
161
- liability for other Contributors. Therefore, if a Contributor includes
162
- the Program in a commercial product offering, such Contributor
163
- ("Commercial Contributor") hereby agrees to defend and indemnify every
164
- other Contributor ("Indemnified Contributor") against any losses,
165
- damages and costs (collectively "Losses") arising from claims, lawsuits
166
- and other legal actions brought by a third party against the Indemnified
167
- Contributor to the extent caused by the acts or omissions of such
168
- Commercial Contributor in connection with its distribution of the Program
169
- in a commercial product offering. The obligations in this section do not
170
- apply to any claims or Losses relating to any actual or alleged
171
- intellectual property infringement. In order to qualify, an Indemnified
172
- Contributor must: a) promptly notify the Commercial Contributor in
173
- writing of such claim, and b) allow the Commercial Contributor to control,
174
- and cooperate with the Commercial Contributor in, the defense and any
175
- related settlement negotiations. The Indemnified Contributor may
176
- participate in any such claim at its own expense.
177
-
178
- For example, a Contributor might include the Program in a commercial
179
- product offering, Product X. That Contributor is then a Commercial
180
- Contributor. If that Commercial Contributor then makes performance
181
- claims, or offers warranties related to Product X, those performance
182
- claims and warranties are such Commercial Contributor's responsibility
183
- alone. Under this section, the Commercial Contributor would have to
184
- defend claims against the other Contributors related to those performance
185
- claims and warranties, and if a court requires any other Contributor to
186
- pay any damages as a result, the Commercial Contributor must pay
187
- those damages.
188
-
189
- 5. NO WARRANTY
190
-
191
- EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
192
- PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
193
- BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
194
- IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
195
- TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
196
- PURPOSE. Each Recipient is solely responsible for determining the
197
- appropriateness of using and distributing the Program and assumes all
198
- risks associated with its exercise of rights under this Agreement,
199
- including but not limited to the risks and costs of program errors,
200
- compliance with applicable laws, damage to or loss of data, programs
201
- or equipment, and unavailability or interruption of operations.
202
-
203
- 6. DISCLAIMER OF LIABILITY
204
-
205
- EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
206
- PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
207
- SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
208
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
209
- PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
210
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
211
- ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
212
- EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
213
- POSSIBILITY OF SUCH DAMAGES.
214
-
215
- 7. GENERAL
216
-
217
- If any provision of this Agreement is invalid or unenforceable under
218
- applicable law, it shall not affect the validity or enforceability of
219
- the remainder of the terms of this Agreement, and without further
220
- action by the parties hereto, such provision shall be reformed to the
221
- minimum extent necessary to make such provision valid and enforceable.
222
-
223
- If Recipient institutes patent litigation against any entity
224
- (including a cross-claim or counterclaim in a lawsuit) alleging that the
225
- Program itself (excluding combinations of the Program with other software
226
- or hardware) infringes such Recipient's patent(s), then such Recipient's
227
- rights granted under Section 2(b) shall terminate as of the date such
228
- litigation is filed.
229
-
230
- All Recipient's rights under this Agreement shall terminate if it
231
- fails to comply with any of the material terms or conditions of this
232
- Agreement and does not cure such failure in a reasonable period of
233
- time after becoming aware of such noncompliance. If all Recipient's
234
- rights under this Agreement terminate, Recipient agrees to cease use
235
- and distribution of the Program as soon as reasonably practicable.
236
- However, Recipient's obligations under this Agreement and any licenses
237
- granted by Recipient relating to the Program shall continue and survive.
238
-
239
- Everyone is permitted to copy and distribute copies of this Agreement,
240
- but in order to avoid inconsistency the Agreement is copyrighted and
241
- may only be modified in the following manner. The Agreement Steward
242
- reserves the right to publish new versions (including revisions) of
243
- this Agreement from time to time. No one other than the Agreement
244
- Steward has the right to modify this Agreement. The Eclipse Foundation
245
- is the initial Agreement Steward. The Eclipse Foundation may assign the
246
- responsibility to serve as the Agreement Steward to a suitable separate
247
- entity. Each new version of the Agreement will be given a distinguishing
248
- version number. The Program (including Contributions) may always be
249
- Distributed subject to the version of the Agreement under which it was
250
- received. In addition, after a new version of the Agreement is published,
251
- Contributor may elect to Distribute the Program (including its
252
- Contributions) under the new version.
253
-
254
- Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
255
- receives no rights or licenses to the intellectual property of any
256
- Contributor under this Agreement, whether expressly, by implication,
257
- estoppel or otherwise. All rights in the Program not expressly granted
258
- under this Agreement are reserved. Nothing in this Agreement is intended
259
- to be enforceable by any entity that is not a Contributor or Recipient.
260
- No third-party beneficiary rights are created under this Agreement.
261
-
262
- Exhibit A - Form of Secondary Licenses Notice
263
-
264
- "This Source Code may also be made available under the following
265
- Secondary Licenses when the conditions for such availability set forth
266
- in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
267
- version(s), and exceptions or additional permissions here}."
268
-
269
- Simply including a copy of this Agreement, including this Exhibit A
270
- is not sufficient to license the Source Code under Secondary Licenses.
271
-
272
- If it is not possible or desirable to put the notice in a particular
273
- file, then You may include the notice in a location (such as a LICENSE
274
- file in a relevant directory) where a recipient would be likely to
275
- look for such a notice.
276
-
277
- You may add additional accurate notices of copyright ownership.