propane 2.8.0.pre-java → 2.9.0-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8cc0b52030212884402a7c4995636eccffa8c017f337742480770272e58c2c1f
4
- data.tar.gz: 474438ac2d93e3068fe60e4a434107b837c56b58549118d61cca8989efbd6781
3
+ metadata.gz: a2cf846bd5fd21677faad67a1936ff3fe41b54e282d8d8b9b3a9ad87d4967275
4
+ data.tar.gz: 685144daeb7e93d016dcee5fe0314653f09e365a8d49e502d25e86383d48c30c
5
5
  SHA512:
6
- metadata.gz: f4fbc1eccba99b539c0c0eea01cb65ea00a93e4be1579853dd03d7143b7d828ca121b089e5e00a4eb8a0653f3b1c9bd16218374001619d7b2050fd2f2a538e0b
7
- data.tar.gz: 1ce2489df38b3aee8c8ec9b6bbcb7fa375b7e28b3829a7dc179222ab585dd90cebb5f1b6f1c73b0b175d3cf9566c5e0f1d93669cb5134c236eb364c8ed5e081b
6
+ metadata.gz: cad4bde01ce84082b1d5f7a36d1f414e0780e976a75084f18110ca7ec92cd974c77322a5ec9b3145d8bd54c638894e42ca9854399be020f334921c42a974ca99
7
+ data.tar.gz: e9d6c96221312e881d77e53738d3e8c9b018ee26a6fdb68bd77bd8c82418905e85be1b8a1cb9a95ac4c23482af76b187e63d72afd8310a90706773b763f58adc
@@ -3,6 +3,6 @@
3
3
  <extension>
4
4
  <groupId>io.takari.polyglot</groupId>
5
5
  <artifactId>polyglot-ruby</artifactId>
6
- <version>0.3.0</version>
6
+ <version>0.3.1</version>
7
7
  </extension>
8
8
  </extensions>
@@ -1,4 +1,6 @@
1
- **v2.8.0** Integrate processing-core, but think free (as in non-proprietary instead of Apple think different). If it doesn't then work on Mac could re-purpose for raspberryPI.
1
+ **v2.9.0** No-one helped with think_open branch, that was trying to get ready for jdk9 (as compilable), so I'm abandoning 2.8.0 series, the 2.9.0 version will create an integrated jar and concentrate on compatibility, rather than be future looking (but I'm not sure that think_different is any use or will work in future). Anyone having difficulty on MacOS should try putting apple.jar into lib folder.
2
+
3
+ **v2.7.2** Slight re-factor of control_panel, fix virgin install of libraries folder, add grafica library examples suggest upgrade to jruby-9.1.17.0
2
4
 
3
5
  **v2.7.1** Avoid calling protected method in control_panel (ready for jdk9)
4
6
 
@@ -6,7 +8,7 @@
6
8
 
7
9
  **v2.6.6** Using a modified processing-core to support jdk9 (NB FX2D and sketches with control_panel using sliders are still expected to fail with jdk9). Jdk8 users should not notice any change.
8
10
 
9
- **v2.6.5** bump for processing-3.3.7
11
+ **v2.6.5** bump for processing-3.4
10
12
 
11
13
  **v2.6.4** Vec2D and Vec3D now support `copy` constructor where the original can be a duck-type. Further the only requirement is that the duck-type responds to `:x`, and `:y` by returning a `float` or `fixnum` thus Vec2D can be promoted to Vec3D (where `z = 0`), or more usually some other Vector or Point class can be used as the original. A VectorUtils library has been implemented, see examples for usage.
12
14
 
data/README.md CHANGED
@@ -1,17 +1,16 @@
1
1
  # Propane
2
+ To build custom core see [processing-core][processing-core]
2
3
 
3
- [![Build Status](https://travis-ci.org/ruby-processing/propane.svg?branch=master)](https://travis-ci.org/ruby-processing/propane)
4
+ A slim layer to communicate with Processing from JRuby, features a polyglot maven build. We have created a configuration free version of ruby processing, for processing-3.4, where we include a modified processing core (`public runPropane()` to replace `protected runSketch()`, (_runSketch not currently usable with jruby and jdk 9_). These jars are small enough to include in a gem distribution, and hence we do not require configuration. This has created a scriptable version, ie files get run direct from jruby, but you could use jruby-complete if you used the propane script (avoids need to give the absolute data path for the data folder, but would also be needed for a watch mode). See guide to [building ruby-processing projects][building]. NB: this is a far from perfect solution and javafx sketches and possibly a few others still fail to run with jdk9, but a least I get to diagnose those errors too.
4
5
 
5
- Features an integrated [processing-core][processing-core] but removing troubling proprietary code (ThinkOpen as in free not asinine ThinkDifferent as proprietary) such as `com.apple.eawt.Application` apple.jar and `com.sun.javafx.geom.Path2D` from `javafx`
6
-
7
-
8
- A slim layer to communicate with Processing from JRuby, features a polyglot maven build. We have created a configuration free version of ruby processing, for processing-3.3.7, where we integrate a modified processing core. This jar is small enough to include in a gem distribution, and hence we do not require configuration. This has created a scriptable version, ie files get run direct from jruby, but you could use jruby-complete if you used the propane script (avoids need to give the absolute data path for the data folder, but would also be needed for a watch mode). See guide to [building ruby-processing projects][building]. It is entirely possible that this version will have degraded performance on Mac (lacking support for dock icons?, close down errors? or strat at all?), but if it works passably well it could be the future on MacOS, else this branch could be re-purposed as pure linux and hence herald possible raspberryPI support.
6
+ adjust above for your OS/distro setup.
9
7
 
10
8
  ## Requirements
11
9
 
12
- - jdk8+
13
- - jruby-9.1.16.0
14
- - mvn-3.5.0+ (_build only_)
10
+ - `jdk8_u181`
11
+ - `jruby-9.2.0.0`
12
+ - `mvn-3.5.0+`
13
+ - `apple.jar` (_build only_) see (or may'be runtime as well a MacOS user needed to test) [vanilla-processing](https://github.com/processing/processing/blob/master/core/apple.jar)
15
14
 
16
15
  ## Building and testing
17
16
 
@@ -23,9 +22,8 @@ rake javadoc
23
22
 
24
23
  ## Installation
25
24
  ```bash
26
- jgem install propane --pre # from rubygems
27
- jgem install propane-2.8.0.pre-java.gem # local install
28
-
25
+ jgem install propane # from rubygems
26
+ jgem install propane-2.9.0-java.gem # local install requires a custom processing-core
29
27
  ```
30
28
 
31
29
  ## Usage
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ def create_manifest
7
7
  File.open('MANIFEST.MF', 'w') do |f|
8
8
  f.puts(title)
9
9
  f.puts(version)
10
- f.puts('Class-Path: processing-core.jar gluegen-rt-2.3.2.jar jog-all-2.3.2.jar')
10
+ f.puts('Class-Path: gluegen-rt-2.3.2.jar jog-all-2.3.2.jar')
11
11
  end
12
12
  end
13
13
 
@@ -21,7 +21,7 @@ end
21
21
  desc 'Install'
22
22
  task :install do
23
23
  sh 'mvn dependency:copy'
24
- sh 'mv target/propane-2.8.0.jar lib'
24
+ sh 'mv target/propane-2.9.0.jar lib'
25
25
  end
26
26
 
27
27
  desc 'Gem'
@@ -9,7 +9,6 @@ module Propane
9
9
  Java::Monkstone::PropaneLibrary.load(JRuby.runtime)
10
10
  SKETCH_ROOT = File.absolute_path('.')
11
11
 
12
- # A utility to facillitate rendering of Vec2D and Vec3D as vertex
13
12
  module Render
14
13
  java_import 'monkstone.vecmath.AppRender'
15
14
  java_import 'monkstone.vecmath.ShapeRender'
@@ -111,7 +110,8 @@ module Propane
111
110
  def initialize(options = {}, arguments = [])
112
111
  # Guard against invalid input.
113
112
  proxy_java_fields
114
- raise TypeError unless options.is_a?(Hash) && arguments.is_a?(Array)
113
+ raise TypeError unless options.is_a? Hash
114
+ raise TypeError unless arguments.is_a? Array
115
115
  # Set up the sketch.
116
116
  super()
117
117
  post_initialize(options)
@@ -183,5 +183,5 @@ module Propane
183
183
  return Propane.app.send(name, *args) if Propane.app.respond_to? name
184
184
  super
185
185
  end
186
- end # Propane::Proxy
186
+ end # Processing::Proxy
187
187
  end # Propane
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Propane
3
- VERSION = '2.8.0.pre'.freeze
3
+ VERSION = '2.9.0'.freeze
4
4
  end
@@ -15,7 +15,8 @@ module ControlPanel
15
15
  mx = range.end
16
16
  mx = range.max if range.exclude_end? && range.begin.respond_to?(:succ)
17
17
  max = mx * 100
18
- super(min, max)
18
+ val = range.cover?(initial) ? initial * 100 : (range.first + range.last) * 50
19
+ super(min, max, val)
19
20
  set_minor_tick_spacing((max - min).abs / 10)
20
21
  set_paint_ticks true
21
22
  # paint_labels = true
@@ -26,8 +27,6 @@ module ControlPanel
26
27
  ControlPanel.app_value(name, value)
27
28
  proc.call(value) if proc
28
29
  end
29
- val = initial.nil? ? (range.first + range.last) * 50 : initial * 100
30
- set_value(val)
31
30
  ControlPanel.app_value(name, val)
32
31
  end
33
32
 
@@ -5,6 +5,7 @@
5
5
  java_import 'monkstone.slider.CustomHorizontalSlider'
6
6
  java_import 'monkstone.slider.CustomVerticalSlider'
7
7
 
8
+ # Slider module
8
9
  module Slider
9
10
  def self.slider(app:, x:, y:, name:, **opts)
10
11
  options = default.merge opts
@@ -35,7 +36,7 @@ module Slider
35
36
  end
36
37
  slider
37
38
  end
38
-
39
+
39
40
  def self.default
40
41
  { length: 100, range: (0..100) }
41
42
  end
@@ -0,0 +1,508 @@
1
+ We use GPL v2 for the parts of the project that we've developed ourselves.
2
+ For the 'core' library, it's LGPL, for everything else, it's GPL.
3
+
4
+ Over the course of many years of development, files being moved around,
5
+ and other code being added and removed, the license information has become
6
+ quite a mess. Please help us clean this up so that others are properly
7
+ credited and licenses are consistently/correctly noted:
8
+ https://github.com/processing/processing/issues/224
9
+
10
+
11
+ .....................................................................
12
+
13
+
14
+ GNU GENERAL PUBLIC LICENSE
15
+ Version 2, June 1991
16
+
17
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
18
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ Everyone is permitted to copy and distribute verbatim copies
20
+ of this license document, but changing it is not allowed.
21
+
22
+ Preamble
23
+
24
+ The licenses for most software are designed to take away your
25
+ freedom to share and change it. By contrast, the GNU General Public
26
+ License is intended to guarantee your freedom to share and change free
27
+ software--to make sure the software is free for all its users. This
28
+ General Public License applies to most of the Free Software
29
+ Foundation's software and to any other program whose authors commit to
30
+ using it. (Some other Free Software Foundation software is covered by
31
+ the GNU Library General Public License instead.) You can apply it to
32
+ your programs, too.
33
+
34
+ When we speak of free software, we are referring to freedom, not
35
+ price. Our General Public Licenses are designed to make sure that you
36
+ have the freedom to distribute copies of free software (and charge for
37
+ this service if you wish), that you receive source code or can get it
38
+ if you want it, that you can change the software or use pieces of it
39
+ in new free programs; and that you know you can do these things.
40
+
41
+ To protect your rights, we need to make restrictions that forbid
42
+ anyone to deny you these rights or to ask you to surrender the rights.
43
+ These restrictions translate to certain responsibilities for you if you
44
+ distribute copies of the software, or if you modify it.
45
+
46
+ For example, if you distribute copies of such a program, whether
47
+ gratis or for a fee, you must give the recipients all the rights that
48
+ you have. You must make sure that they, too, receive or can get the
49
+ source code. And you must show them these terms so they know their
50
+ rights.
51
+
52
+ We protect your rights with two steps: (1) copyright the software, and
53
+ (2) offer you this license which gives you legal permission to copy,
54
+ distribute and/or modify the software.
55
+
56
+ Also, for each author's protection and ours, we want to make certain
57
+ that everyone understands that there is no warranty for this free
58
+ software. If the software is modified by someone else and passed on, we
59
+ want its recipients to know that what they have is not the original, so
60
+ that any problems introduced by others will not reflect on the original
61
+ authors' reputations.
62
+
63
+ Finally, any free program is threatened constantly by software
64
+ patents. We wish to avoid the danger that redistributors of a free
65
+ program will individually obtain patent licenses, in effect making the
66
+ program proprietary. To prevent this, we have made it clear that any
67
+ patent must be licensed for everyone's free use or not licensed at all.
68
+
69
+ The precise terms and conditions for copying, distribution and
70
+ modification follow.
71
+
72
+ GNU GENERAL PUBLIC LICENSE
73
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
74
+
75
+ 0. This License applies to any program or other work which contains
76
+ a notice placed by the copyright holder saying it may be distributed
77
+ under the terms of this General Public License. The "Program", below,
78
+ refers to any such program or work, and a "work based on the Program"
79
+ means either the Program or any derivative work under copyright law:
80
+ that is to say, a work containing the Program or a portion of it,
81
+ either verbatim or with modifications and/or translated into another
82
+ language. (Hereinafter, translation is included without limitation in
83
+ the term "modification".) Each licensee is addressed as "you".
84
+
85
+ Activities other than copying, distribution and modification are not
86
+ covered by this License; they are outside its scope. The act of
87
+ running the Program is not restricted, and the output from the Program
88
+ is covered only if its contents constitute a work based on the
89
+ Program (independent of having been made by running the Program).
90
+ Whether that is true depends on what the Program does.
91
+
92
+ 1. You may copy and distribute verbatim copies of the Program's
93
+ source code as you receive it, in any medium, provided that you
94
+ conspicuously and appropriately publish on each copy an appropriate
95
+ copyright notice and disclaimer of warranty; keep intact all the
96
+ notices that refer to this License and to the absence of any warranty;
97
+ and give any other recipients of the Program a copy of this License
98
+ along with the Program.
99
+
100
+ You may charge a fee for the physical act of transferring a copy, and
101
+ you may at your option offer warranty protection in exchange for a fee.
102
+
103
+ 2. You may modify your copy or copies of the Program or any portion
104
+ of it, thus forming a work based on the Program, and copy and
105
+ distribute such modifications or work under the terms of Section 1
106
+ above, provided that you also meet all of these conditions:
107
+
108
+ a) You must cause the modified files to carry prominent notices
109
+ stating that you changed the files and the date of any change.
110
+
111
+ b) You must cause any work that you distribute or publish, that in
112
+ whole or in part contains or is derived from the Program or any
113
+ part thereof, to be licensed as a whole at no charge to all third
114
+ parties under the terms of this License.
115
+
116
+ c) If the modified program normally reads commands interactively
117
+ when run, you must cause it, when started running for such
118
+ interactive use in the most ordinary way, to print or display an
119
+ announcement including an appropriate copyright notice and a
120
+ notice that there is no warranty (or else, saying that you provide
121
+ a warranty) and that users may redistribute the program under
122
+ these conditions, and telling the user how to view a copy of this
123
+ License. (Exception: if the Program itself is interactive but
124
+ does not normally print such an announcement, your work based on
125
+ the Program is not required to print an announcement.)
126
+
127
+ These requirements apply to the modified work as a whole. If
128
+ identifiable sections of that work are not derived from the Program,
129
+ and can be reasonably considered independent and separate works in
130
+ themselves, then this License, and its terms, do not apply to those
131
+ sections when you distribute them as separate works. But when you
132
+ distribute the same sections as part of a whole which is a work based
133
+ on the Program, the distribution of the whole must be on the terms of
134
+ this License, whose permissions for other licensees extend to the
135
+ entire whole, and thus to each and every part regardless of who wrote it.
136
+
137
+ Thus, it is not the intent of this section to claim rights or contest
138
+ your rights to work written entirely by you; rather, the intent is to
139
+ exercise the right to control the distribution of derivative or
140
+ collective works based on the Program.
141
+
142
+ In addition, mere aggregation of another work not based on the Program
143
+ with the Program (or with a work based on the Program) on a volume of
144
+ a storage or distribution medium does not bring the other work under
145
+ the scope of this License.
146
+
147
+ 3. You may copy and distribute the Program (or a work based on it,
148
+ under Section 2) in object code or executable form under the terms of
149
+ Sections 1 and 2 above provided that you also do one of the following:
150
+
151
+ a) Accompany it with the complete corresponding machine-readable
152
+ source code, which must be distributed under the terms of Sections
153
+ 1 and 2 above on a medium customarily used for software interchange; or,
154
+
155
+ b) Accompany it with a written offer, valid for at least three
156
+ years, to give any third party, for a charge no more than your
157
+ cost of physically performing source distribution, a complete
158
+ machine-readable copy of the corresponding source code, to be
159
+ distributed under the terms of Sections 1 and 2 above on a medium
160
+ customarily used for software interchange; or,
161
+
162
+ c) Accompany it with the information you received as to the offer
163
+ to distribute corresponding source code. (This alternative is
164
+ allowed only for noncommercial distribution and only if you
165
+ received the program in object code or executable form with such
166
+ an offer, in accord with Subsection b above.)
167
+
168
+ The source code for a work means the preferred form of the work for
169
+ making modifications to it. For an executable work, complete source
170
+ code means all the source code for all modules it contains, plus any
171
+ associated interface definition files, plus the scripts used to
172
+ control compilation and installation of the executable. However, as a
173
+ special exception, the source code distributed need not include
174
+ anything that is normally distributed (in either source or binary
175
+ form) with the major components (compiler, kernel, and so on) of the
176
+ operating system on which the executable runs, unless that component
177
+ itself accompanies the executable.
178
+
179
+ If distribution of executable or object code is made by offering
180
+ access to copy from a designated place, then offering equivalent
181
+ access to copy the source code from the same place counts as
182
+ distribution of the source code, even though third parties are not
183
+ compelled to copy the source along with the object code.
184
+
185
+ 4. You may not copy, modify, sublicense, or distribute the Program
186
+ except as expressly provided under this License. Any attempt
187
+ otherwise to copy, modify, sublicense or distribute the Program is
188
+ void, and will automatically terminate your rights under this License.
189
+ However, parties who have received copies, or rights, from you under
190
+ this License will not have their licenses terminated so long as such
191
+ parties remain in full compliance.
192
+
193
+ 5. You are not required to accept this License, since you have not
194
+ signed it. However, nothing else grants you permission to modify or
195
+ distribute the Program or its derivative works. These actions are
196
+ prohibited by law if you do not accept this License. Therefore, by
197
+ modifying or distributing the Program (or any work based on the
198
+ Program), you indicate your acceptance of this License to do so, and
199
+ all its terms and conditions for copying, distributing or modifying
200
+ the Program or works based on it.
201
+
202
+ 6. Each time you redistribute the Program (or any work based on the
203
+ Program), the recipient automatically receives a license from the
204
+ original licensor to copy, distribute or modify the Program subject to
205
+ these terms and conditions. You may not impose any further
206
+ restrictions on the recipients' exercise of the rights granted herein.
207
+ You are not responsible for enforcing compliance by third parties to
208
+ this License.
209
+
210
+ 7. If, as a consequence of a court judgment or allegation of patent
211
+ infringement or for any other reason (not limited to patent issues),
212
+ conditions are imposed on you (whether by court order, agreement or
213
+ otherwise) that contradict the conditions of this License, they do not
214
+ excuse you from the conditions of this License. If you cannot
215
+ distribute so as to satisfy simultaneously your obligations under this
216
+ License and any other pertinent obligations, then as a consequence you
217
+ may not distribute the Program at all. For example, if a patent
218
+ license would not permit royalty-free redistribution of the Program by
219
+ all those who receive copies directly or indirectly through you, then
220
+ the only way you could satisfy both it and this License would be to
221
+ refrain entirely from distribution of the Program.
222
+
223
+ If any portion of this section is held invalid or unenforceable under
224
+ any particular circumstance, the balance of the section is intended to
225
+ apply and the section as a whole is intended to apply in other
226
+ circumstances.
227
+
228
+ It is not the purpose of this section to induce you to infringe any
229
+ patents or other property right claims or to contest validity of any
230
+ such claims; this section has the sole purpose of protecting the
231
+ integrity of the free software distribution system, which is
232
+ implemented by public license practices. Many people have made
233
+ generous contributions to the wide range of software distributed
234
+ through that system in reliance on consistent application of that
235
+ system; it is up to the author/donor to decide if he or she is willing
236
+ to distribute software through any other system and a licensee cannot
237
+ impose that choice.
238
+
239
+ This section is intended to make thoroughly clear what is believed to
240
+ be a consequence of the rest of this License.
241
+
242
+ 8. If the distribution and/or use of the Program is restricted in
243
+ certain countries either by patents or by copyrighted interfaces, the
244
+ original copyright holder who places the Program under this License
245
+ may add an explicit geographical distribution limitation excluding
246
+ those countries, so that distribution is permitted only in or among
247
+ countries not thus excluded. In such case, this License incorporates
248
+ the limitation as if written in the body of this License.
249
+
250
+ 9. The Free Software Foundation may publish revised and/or new versions
251
+ of the General Public License from time to time. Such new versions will
252
+ be similar in spirit to the present version, but may differ in detail to
253
+ address new problems or concerns.
254
+
255
+ Each version is given a distinguishing version number. If the Program
256
+ specifies a version number of this License which applies to it and "any
257
+ later version", you have the option of following the terms and conditions
258
+ either of that version or of any later version published by the Free
259
+ Software Foundation. If the Program does not specify a version number of
260
+ this License, you may choose any version ever published by the Free Software
261
+ Foundation.
262
+
263
+ 10. If you wish to incorporate parts of the Program into other free
264
+ programs whose distribution conditions are different, write to the author
265
+ to ask for permission. For software which is copyrighted by the Free
266
+ Software Foundation, write to the Free Software Foundation; we sometimes
267
+ make exceptions for this. Our decision will be guided by the two goals
268
+ of preserving the free status of all derivatives of our free software and
269
+ of promoting the sharing and reuse of software generally.
270
+
271
+ NO WARRANTY
272
+
273
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
274
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
275
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
276
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
277
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
278
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
279
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
280
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
281
+ REPAIR OR CORRECTION.
282
+
283
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
284
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
285
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
286
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
287
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
288
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
289
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
290
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
291
+ POSSIBILITY OF SUCH DAMAGES.
292
+
293
+
294
+ .....................................................................
295
+
296
+
297
+ the original document can be found at:
298
+ http://oss.software.ibm.com/developerworks/opensource/license10.html
299
+
300
+
301
+ IBM Public License Version 1.0
302
+
303
+ THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS IBM
304
+ PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF
305
+ THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
306
+
307
+
308
+ 1. DEFINITIONS
309
+
310
+ "Contribution" means:
311
+
312
+ a) in the case of International Business Machines Corporation ("IBM"),
313
+ the Original Program, and
314
+
315
+ b) in the case of each Contributor,
316
+
317
+ i) changes to the Program, and
318
+
319
+ ii) additions to the Program;
320
+ where such changes and/or additions to the Program originate from and
321
+ are distributed by that particular Contributor. A Contribution
322
+ 'originates' from a Contributor if it was added to the Program by such
323
+ Contributor itself or anyone acting on such Contributor's
324
+ behalf. Contributions do not include additions to the Program which:
325
+ (i) are separate modules of software distributed in conjunction with
326
+ the Program under their own license agreement, and (ii) are not
327
+ derivative works of the Program.
328
+
329
+ "Contributor" means IBM and any other entity that distributes the
330
+ Program.
331
+
332
+ "Licensed Patents " mean patent claims licensable by a Contributor
333
+ which are necessarily infringed by the use or sale of its Contribution
334
+ alone or when combined with the Program.
335
+
336
+
337
+ "Original Program" means the original version of the software
338
+ accompanying this Agreement as released by IBM, including source code,
339
+ object code and documentation, if any.
340
+
341
+ "Program" means the Original Program and Contributions.
342
+
343
+ "Recipient" means anyone who receives the Program under this
344
+ Agreement, including all Contributors.
345
+
346
+
347
+ 2. GRANT OF RIGHTS
348
+
349
+ a) Subject to the terms of this Agreement, each Contributor hereby
350
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
351
+ license to reproduce, prepare derivative works of, publicly display,
352
+ publicly perform, distribute and sublicense the Contribution of such
353
+ Contributor, if any, and such derivative works, in source code and
354
+ object code form.
355
+
356
+ b) Subject to the terms of this Agreement, each Contributor hereby
357
+ grants Recipient a non-exclusive, worldwide, royalty-free patent
358
+ license under Licensed Patents to make, use, sell, offer to sell,
359
+ import and otherwise transfer the Contribution of such Contributor, if
360
+ any, in source code and object code form. This patent license shall
361
+ apply to the combination of the Contribution and the Program if, at
362
+ the time the Contribution is added by the Contributor, such addition
363
+ of the Contribution causes such combination to be covered by the
364
+ Licensed Patents. The patent license shall not apply to any other
365
+ combinations which include the Contribution. No hardware per se is
366
+ licensed hereunder.
367
+
368
+ c) Recipient understands that although each Contributor grants the
369
+ licenses to its Contributions set forth herein, no assurances are
370
+ provided by any Contributor that the Program does not infringe the
371
+ patent or other intellectual property rights of any other entity. Each
372
+ Contributor disclaims any liability to Recipient for claims brought by
373
+ any other entity based on infringement of intellectual property rights
374
+ or otherwise. As a condition to exercising the rights and licenses
375
+ granted hereunder, each Recipient hereby assumes sole responsibility
376
+ to secure any other intellectual property rights needed, if any. For
377
+ example, if a third party patent license is required to allow
378
+ Recipient to distribute the Program, it is Recipient's responsibility
379
+ to acquire that license before distributing the Program.
380
+
381
+ d) Each Contributor represents that to its knowledge it has sufficient
382
+ copyright rights in its Contribution, if any, to grant the copyright
383
+ license set forth in this Agreement.
384
+
385
+
386
+ 3. REQUIREMENTS
387
+
388
+ A Contributor may choose to distribute the Program in object code form
389
+ under its own license agreement, provided that:
390
+
391
+ a) it complies with the terms and conditions of this Agreement; and
392
+
393
+ b) its license agreement:
394
+
395
+ i) effectively disclaims on behalf of all Contributors all warranties
396
+ and conditions, express and implied, including warranties or
397
+ conditions of title and non-infringement, and implied warranties or
398
+ conditions of merchantability and fitness for a particular purpose;
399
+
400
+ ii) effectively excludes on behalf of all Contributors all liability
401
+ for damages, including direct, indirect, special, incidental and
402
+ consequential damages, such as lost profits;
403
+
404
+ iii) states that any provisions which differ from this Agreement are
405
+ offered by that Contributor alone and not by any other party; and
406
+
407
+ iv) states that source code for the Program is available from such
408
+ Contributor, and informs licensees how to obtain it in a reasonable
409
+ manner on or through a medium customarily used for software exchange.
410
+
411
+ When the Program is made available in source code form:
412
+ a) it must be made available under this Agreement; and
413
+ b) a copy of this Agreement must be included with each copy of the
414
+ Program.
415
+
416
+ Each Contributor must include the following in a conspicuous location
417
+ in the Program:
418
+
419
+ Copyright 2003, International Business Machines Corporation and
420
+ others. All Rights Reserved.
421
+
422
+ In addition, each Contributor must identify itself as the originator
423
+ of its Contribution, if any, in a manner that reasonably allows
424
+ subsequent Recipients to identify the originator of the Contribution.
425
+
426
+
427
+ 4. COMMERCIAL DISTRIBUTION
428
+
429
+ Commercial distributors of software may accept certain
430
+ responsibilities with respect to end users, business partners and the
431
+ like. While this license is intended to facilitate the commercial use
432
+ of the Program, the Contributor who includes the Program in a
433
+ commercial product offering should do so in a manner which does not
434
+ create potential liability for other Contributors. Therefore, if a
435
+ Contributor includes the Program in a commercial product offering,
436
+ such Contributor ("Commercial Contributor") hereby agrees to defend
437
+ and indemnify every other Contributor ("Indemnified Contributor")
438
+ against any losses, damages and costs (collectively "Losses") arising
439
+ from claims, lawsuits and other legal actions brought by a third party
440
+ against the Indemnified Contributor to the extent caused by the acts
441
+ or omissions of such Commercial Contributor in connection with its
442
+ distribution of the Program in a commercial product offering. The
443
+ obligations in this section do not apply to any claims or Losses
444
+ relating to any actual or alleged intellectual property
445
+ infringement. In order to qualify, an Indemnified Contributor must: a)
446
+ promptly notify the Commercial Contributor in writing of such claim,
447
+ and b) allow the Commercial Contributor to control, and cooperate with
448
+ the Commercial Contributor in, the defense and any related settlement
449
+ negotiations. The Indemnified Contributor may participate in any such
450
+ claim at its own expense.
451
+
452
+ For example, a Contributor might include the Program in a commercial
453
+ product offering, Product X. That Contributor is then a Commercial
454
+ Contributor. If that Commercial Contributor then makes performance
455
+ claims, or offers warranties related to Product X, those performance
456
+ claims and warranties are such Commercial Contributor's responsibility
457
+ alone. Under this section, the Commercial Contributor would have to
458
+ defend claims against the other Contributors related to those
459
+ performance claims and warranties, and if a court requires any other
460
+ Contributor to pay any damages as a result, the Commercial Contributor
461
+ must pay those damages.
462
+
463
+
464
+ 5. NO WARRANTY
465
+
466
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
467
+ PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
468
+ KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
469
+ WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
470
+ OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
471
+ responsible for determining the appropriateness of using and
472
+ distributing the Program and assumes all risks associated with its
473
+ exercise of rights under this Agreement, including but not limited to
474
+ the risks and costs of program errors, compliance with applicable
475
+ laws, damage to or loss of data, programs or equipment, and
476
+ unavailability or interruption of operations.
477
+
478
+
479
+ 6. DISCLAIMER OF LIABILITY
480
+
481
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
482
+ ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
483
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
484
+ WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
485
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
486
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
487
+ DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
488
+ HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
489
+
490
+
491
+ 7. GENERAL
492
+
493
+ If any provision of this Agreement is invalid or unenforceable under
494
+ applicable law, it shall not affect the validity or enforceability of
495
+ the remainder of the terms of this Agreement, and without further
496
+ action by the parties hereto, such provision shall be reformed to the
497
+ minimum extent necessary to make such provision valid and
498
+ enforceable.
499
+
500
+ If Recipient institutes patent litigation against a Contributor with
501
+ respect to a patent applicable to software (including a cross-claim or
502
+ counterclaim in a lawsuit), then any patent licenses granted by that
503
+ Contributor to such Recipient under this Agreement shall terminate as
504
+ of the date such litigation is filed. In addition, If Recipient
505
+ institutes patent litigation against any entity (including a
506
+ cross-claim or counterclaim in a lawsuit) alleging that the Program
507
+ itself (excluding combinations of the Program with other software or
508
+ hardware