Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/backup.txt'. Fisheye: No comparison available. Pass `N' to diff? Index: win_installer/build.xml =================================================================== diff -u -rb8ef31a0785bd8e2488cbd9192623d9ab207e53f -ra346e8c8f13dc57dfca4a13f75d0b4276969e207 --- win_installer/build.xml (.../build.xml) (revision b8ef31a0785bd8e2488cbd9192623d9ab207e53f) +++ win_installer/build.xml (.../build.xml) (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -20,7 +20,7 @@ - Index: win_installer/graphics/favicon.ico =================================================================== diff -u -rce62da8c797dd3f95cb9160151e2128c32525800 -ra346e8c8f13dc57dfca4a13f75d0b4276969e207 Binary files differ Index: win_installer/graphics/header.bmp =================================================================== diff -u -rae13f2caa2572e368b592d80912e09782ce5a56a -ra346e8c8f13dc57dfca4a13f75d0b4276969e207 Binary files differ Index: win_installer/graphics/lams2.ico =================================================================== diff -u -rae13f2caa2572e368b592d80912e09782ce5a56a -ra346e8c8f13dc57dfca4a13f75d0b4276969e207 Binary files differ Index: win_installer/installer/documents/license-wrapper.txt =================================================================== diff -u --- win_installer/installer/documents/license-wrapper.txt (revision 0) +++ win_installer/installer/documents/license-wrapper.txt (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,53 @@ +Copyright (c) 1999, 2006 Tanuki Software, Inc. + +Permission is hereby granted, free of charge, to any person +obtaining a copy of the Java Service Wrapper and associated +documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sub-license, +and/or sell copies of the Software, and to permit persons to +whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + + +Portions of the Software have been derived from source code +developed by Silver Egg Technology under the following license: + +BEGIN Silver Egg Techology License ----------------------------------- + + Copyright (c) 2001 Silver Egg Technology + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sub-license, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + +END Silver Egg Techology License ------------------------------------- \ No newline at end of file Index: win_installer/installer/documents/license.txt =================================================================== diff -u --- win_installer/installer/documents/license.txt (revision 0) +++ win_installer/installer/documents/license.txt (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,2606 @@ +LAMS 2.1 RC1 is released under the GPL license detailed below. This package +also includes other libraries/packages, whose respective licenses are +detailed below. + +Library/Package License +-------------------------------------------------------------------------------- +wrapper.jar Silver Egg Techology License (see license-wrapper.txt) +antlr.jar Antlr 3 License +axis-ant.jar Apache License 2.0 +axis.jar Apache License 2.0 +cglib-nodep-2.1_2.jar Apache License 2.0 +cglib_jboss404GA.jar Apache License 2.0 +commons-beanutils.jar Apache License 2.0 +commons-codec-1.3.jar Apache License 2.0 +commons-collections.jar Apache License 2.0 +commons-digester.jar Apache License 2.0 +commons-discovery-0.2.jar Apache Software License 1.1 +commons-fileupload.jar Apache Software License 1.1 +commons-lang-2.0.jar Apache Software License 1.1 +commons-logging.jar Apache License 2.0 +commons-validator.jar Apache License 2.0 +FCKeditor-2.3.jar CDL Closed Distribution License +gnujaxp.jar GNU General Public License +hibernate3.jar GNU General Public License +jakarta-oro.jar Apache Software License 1.1 +jaxrpc.jar CDDL (Common Development and + Distribution License 1.0) +JBoss 4.0.2 GNU Lesser General Public Licence +jboss-cache.jar GNU Lesser General Public Licence +jboss-common.jar GNU Lesser General Public Licence +jboss-jmx.jar GNU Lesser General Public Licence +jboss-system.jar GNU Lesser General Public Licence +jcommon-1.0.0.jar GNU Lesser General Public Licence +jdom.jar Jdom Jar License +jfreechart-1.0.1.jar GNU Lesser General Public Licence +jgroups.jar GNU Lesser General Public Licence +jmock-2003-03-19.jar jMock Project License +joda-time-0.98.jar Joda Software License 1.0 +jsMath Apache License 2.0 +jstl.jar JSTL License 1.1 +log4j-1.2.13.jar Apache Software License 1.1 +mysql-connector- (CDDL Common Development and + java-3.1.12-bin-jar Distribution License 1.0) +odmg-3.0.jar ODMG 2.0 +poi-2.5.1-final Apache Software License 1.1 + -20040804.jar +quartz.jar Apache License 2.0 +saaj.jar (CDDL Common Development and + Distribution License 1.0) +smack.jar Apache License 2.0 +smackx.jar Apache License 2.0 +spring.jar Apache License 2.0 +standard.jar Apache License 2.0 +struts-el.jar Apache License 2.0 +struts.jar Apache License 2.0 +wddx.jar GNU General Public License +wsdl4j-1.5.1.jar CPL Common Public License 0.5 +xml-writer-0.2.jar XML-Write License +xom-1.0.b3.jar GNU Lesser General Public License +xpp3-1.1.3.4d_b4.jar XPP3 License +xstream-1.1.jar xstream Licanse + +SHARE RECOURCES LIBRARY LICENSES +castor-0.9.5.3-xml.jar Castor License +jdom.jar Jdom Jar License +moonunitsrc.jar Reload License +reload-diva.jar Reload License +reload-editor.jar Reload License +reload-jdom.jar Reload License +reload-moonunit.jar Reload License +xercesImpl.jar Apache Software License 1.1 +xml-apis.jar Apache Software License 1.1 +jaxen-full.jar Jaxen Jar License (The Werken + Company) +sax.jar Public Domain +saxpath.jar Jaxen Jar License (The Werken + Company) +-------------------------------------------------------------------------------- + + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + + + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + + +===================================================== +/* + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2000 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + * Portions of this software are based upon public domain software + * originally written at the National Center for Supercomputing Applications, + * University of Illinois, Urbana-Champaign. + */ + ===================================================== + + + + + ===================================================== + + /* + * Joda Software License, Version 1.0 + * + * + * Copyright (c) 2001-2004 Stephen Colebourne. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Joda project (http://www.joda.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The name "Joda" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact licence@joda.org. + * + * 5. Products derived from this software may not be called "Joda", + * nor may "Joda" appear in their name, without prior written + * permission of the Joda project. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE JODA AUTHORS OR THE PROJECT + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Joda project and was originally + * created by Stephen Colebourne . For more + * information on the Joda project, please see . + */ + + ===================================================== + + + +===================================================== + +Closed Distribution License (CDL) + +Agreement +IMPORTANT - READ CAREFULLY: This End-User License Agreement ("EULA") is a legal +agreement between you (either an individual or a single entity) and FREDERICO +CALDEIRA KNABBEN (the "Owner") covering your use of FCKeditor (the �Software�). +Be sure to read the following agreement before using the Software. +TERMS AND CONDITIONS +1. This EULA uses the GNU Lesser General Public License (�LGPL�) as its base. +Agreeing to this license you are also agreeing to be bound to the LGPL license +terms, limited to the changes defined in this EULA. The terms defined in this +EULA override any term present in the LGPL license that conflicts with the EULA. +2. GRANT OF LICENSE. The Owner grants you the right to use the Software and any +related supplements or add-on components published by the Owner, unless +explicitly specified, on your one specific product (�Product�) with the +following special rights: there is no need to distribute the LGPL license with +the Product and no reference to it have to be done; no references to the +Software have to be done in any file distributed with the Product; the source +code of the Software doesn�t have to be distributed along with the Product; you +can remove any file from the Software when integrating it with the Product. It +is agreed that in exchange for the license set forth herein, you will pay a +one-time license fee of US$750 (Seven Hundred and Fifty U.S. Dollars). +3. LICENSE VALIDITY. This EULA is valid only if the Product is a work that uses +the Software, and doesn�t go in competition with the Software in the +marketplace. Whenever this license looses its validity, the LGPL license takes +its place. +4. RESERVATION OF RIGHTS AND OWNERSHIP. The Owner reserves all rights not +expressly granted to you in this EULA. The Software is protected by copyright +and other intellectual property laws and treaties. The Owner owns the title, +copyright, and other intellectual property rights in the Software. The Software +is licensed, not sold. This EULA does not grant you any rights to trademarks or +service the Software marks. +5. TERMINATION. Without prejudice to any other rights, the Owner may terminate +this EULA if you fail to comply with the terms and conditions of this EULA. In +such event, your right to use this Software and the rights to use the files +produced using the Software by third parties terminates automatically and you +must then destroy all copies of the Software in your possession. +6. WARRANTY. Owner represents and warrants that he has full title and ownership +to the Software and has the authority to grant the license hereunder. To the +best of Owner's knowledge the Software does not infringe upon the intellectual +property rights of any third party and that he did not receive any notice +regarding any alleged infringement thereof. +7. DISCLAIMER OF WARRANTIES. The Software and its related material are provided +�AS IS� and without warranty of any kind and the Owner expressly disclaims all +other warranties, expressed or implied, including, but not limited to, the +implied warranties of merchantability and fitness for a particular purpose. +8. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES. +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT +SHALL THE OWNER BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE, +INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, BUT NOT +LIMITED TO, DAMAGES FOR LOSS OF PROFITS OR CONFIDENTIAL OR OTHER +INFORMATION, FOR BUSINESS INTERRUPTION, FOR PERSONAL INJURY, FOR +LOSS OF PRIVACY, FOR FAILURE TO MEET ANY DUTY INCLUDING OF GOOD +FAITH OR OF REASONABLE CARE, FOR NEGLIGENCE, AND FOR ANY OTHER +PECUNIARY OR OTHER LOSS WHATSOEVER) ARISING OUT OF OR IN ANY WAY +RELATED TO THE USE OF OR INABILITY TO USE THE SOFTWARE, THE +PROVISION OF OR FAILURE TO PROVIDE SUPPORT OR OTHER SERVICES, +INFORMATON, SOFTWARE, AND RELATED CONTENT THROUGH THE SOFTWARE +OR OTHERWISE ARISING OUT OF THE USE OF THE SOFTWARE, OR OTHERWISE +UNDER OR IN CONNECTION WITH ANY PROVISION OF THIS EULA, EVEN IN THE +EVENT OF THE FAULT, TORT (INCLUDING NEGLIGENCE), MISREPRESENTATION, +STRICT LIABILITY, BREACH OF CONTRACT, AND EVEN IF THE OWNER HAS BEEN +ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +9. LIMITATION OF LIABILITY. In no vent shall the Owner's liability exceed the +license fee paid, if any. +END OF TERMS AND CONDITIONS + +===================================================== + + + +===================================================== + +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 + + 1. Definitions. + 1.1. "Contributor" means each individual or entity that + creates or contributes to the creation of Modifications. + 1.2. "Contributor Version" means the combination of the + Original Software, prior Modifications used by a + Contributor (if any), and the Modifications made by that + particular Contributor. + 1.3. "Covered Software" means (a) the Original Software, or + (b) Modifications, or (c) the combination of files + containing Original Software with files containing + Modifications, in each case including portions thereof. + 1.4. "Executable" means the Covered Software in any form + other than Source Code. + 1.5. "Initial Developer" means the individual or entity + that first makes Original Software available under this + License. + 1.6. "Larger Work" means a work which combines Covered + Software or portions thereof with code not governed by the + terms of this License. + 1.7. "License" means this document. + 1.8. "Licensable" means having the right to grant, to the + maximum extent possible, whether at the time of the initial + grant or subsequently acquired, any and all of the rights + conveyed herein. + 1.9. "Modifications" means the Source Code and Executable + form of any of the following: + A. Any file that results from an addition to, + deletion from or modification of the contents of a + file containing Original Software or previous + Modifications; + B. Any new file that contains any part of the + Original Software or previous Modification; or + C. Any new file that is contributed or otherwise made + available under the terms of this License. + 1.10. "Original Software" means the Source Code and + Executable form of computer software code that is + originally released under this License. + 1.11. "Patent Claims" means any patent claim(s), now owned + or hereafter acquired, including without limitation, + method, process, and apparatus claims, in any patent + Licensable by grantor. + 1.12. "Source Code" means (a) the common form of computer + software code in which modifications are made and (b) + associated documentation included in or with such code. + 1.13. "You" (or "Your") means an individual or a legal + entity exercising rights under, and complying with all of + the terms of, this License. For legal entities, "You" + includes any entity which controls, is controlled by, or is + under common control with You. For purposes of this + definition, "control" means (a) the power, direct or + indirect, to cause the direction or management of such + entity, whether by contract or otherwise, or (b) ownership + of more than fifty percent (50%) of the outstanding shares + or beneficial ownership of such entity. + 2. License Grants. + 2.1. The Initial Developer Grant. + Conditioned upon Your compliance with Section 3.1 below and + subject to third party intellectual property claims, the + Initial Developer hereby grants You a world-wide, + royalty-free, non-exclusive license: + (a) under intellectual property rights (other than + patent or trademark) Licensable by Initial Developer, + to use, reproduce, modify, display, perform, + sublicense and distribute the Original Software (or + portions thereof), with or without Modifications, + and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, + using or selling of Original Software, to make, have + made, use, practice, sell, and offer for sale, and/or + otherwise dispose of the Original Software (or + portions thereof). + (c) The licenses granted in Sections 2.1(a) and (b) + are effective on the date Initial Developer first + distributes or otherwise makes the Original Software + available to a third party under the terms of this + License. + (d) Notwithstanding Section 2.1(b) above, no patent + license is granted: (1) for code that You delete from + the Original Software, or (2) for infringements + caused by: (i) the modification of the Original + Software, or (ii) the combination of the Original + Software with other software or devices. + 2.2. Contributor Grant. + Conditioned upon Your compliance with Section 3.1 below and + subject to third party intellectual property claims, each + Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + (a) under intellectual property rights (other than + patent or trademark) Licensable by Contributor to + use, reproduce, modify, display, perform, sublicense + and distribute the Modifications created by such + Contributor (or portions thereof), either on an + unmodified basis, with other Modifications, as + Covered Software and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, + using, or selling of Modifications made by that + Contributor either alone and/or in combination with + its Contributor Version (or portions of such + combination), to make, use, sell, offer for sale, + have made, and/or otherwise dispose of: (1) + Modifications made by that Contributor (or portions + thereof); and (2) the combination of Modifications + made by that Contributor with its Contributor Version + (or portions of such combination). + (c) The licenses granted in Sections 2.2(a) and + 2.2(b) are effective on the date Contributor first + distributes or otherwise makes the Modifications + available to a third party. + (d) Notwithstanding Section 2.2(b) above, no patent + license is granted: (1) for any code that Contributor + has deleted from the Contributor Version; (2) for + infringements caused by: (i) third party + modifications of Contributor Version, or (ii) the + combination of Modifications made by that Contributor + with other software (except as part of the + Contributor Version) or other devices; or (3) under + Patent Claims infringed by Covered Software in the + absence of Modifications made by that Contributor. + 3. Distribution Obligations. + 3.1. Availability of Source Code. + Any Covered Software that You distribute or otherwise make + available in Executable form must also be made available in + Source Code form and that Source Code form must be + distributed only under the terms of this License. You must + include a copy of this License with every copy of the + Source Code form of the Covered Software You distribute or + otherwise make available. You must inform recipients of any + such Covered Software in Executable form as to how they can + obtain such Covered Software in Source Code form in a + reasonable manner on or through a medium customarily used + for software exchange. + 3.2. Modifications. + The Modifications that You create or to which You + contribute are governed by the terms of this License. You + represent that You believe Your Modifications are Your + original creation(s) and/or You have sufficient rights to + grant the rights conveyed by this License. + 3.3. Required Notices. + You must include a notice in each of Your Modifications + that identifies You as the Contributor of the Modification. + You may not remove or alter any copyright, patent or + trademark notices contained within the Covered Software, or + any notices of licensing or any descriptive text giving + attribution to any Contributor or the Initial Developer. + 3.4. Application of Additional Terms. + You may not offer or impose any terms on any Covered + Software in Source Code form that alters or restricts the + applicable version of this License or the recipients� + rights hereunder. You may choose to offer, and to charge a + fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Software. + However, you may do so only on Your own behalf, and not on + behalf of the Initial Developer or any Contributor. You + must make it absolutely clear that any such warranty, + support, indemnity or liability obligation is offered by + You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred + by the Initial Developer or such Contributor as a result of + warranty, support, indemnity or liability terms You offer. + 3.5. Distribution of Executable Versions. + You may distribute the Executable form of the Covered + Software under the terms of this License or under the terms + of a license of Your choice, which may contain terms + different from this License, provided that You are in + compliance with the terms of this License and that the + license for the Executable form does not attempt to limit + or alter the recipient�s rights in the Source Code form + from the rights set forth in this License. If You + distribute the Covered Software in Executable form under a + different license, You must make it absolutely clear that + any terms which differ from this License are offered by You + alone, not by the Initial Developer or Contributor. You + hereby agree to indemnify the Initial Developer and every + Contributor for any liability incurred by the Initial + Developer or such Contributor as a result of any such terms + You offer. + 3.6. Larger Works. + You may create a Larger Work by combining Covered Software + with other code not governed by the terms of this License + and distribute the Larger Work as a single product. In such + a case, You must make sure the requirements of this License + are fulfilled for the Covered Software. + 4. Versions of the License. + 4.1. New Versions. + Sun Microsystems, Inc. is the initial license steward and + may publish revised and/or new versions of this License + from time to time. Each version will be given a + distinguishing version number. Except as provided in + Section 4.3, no one other than the license steward has the + right to modify this License. + 4.2. Effect of New Versions. + You may always continue to use, distribute or otherwise + make the Covered Software available under the terms of the + version of the License under which You originally received + the Covered Software. If the Initial Developer includes a + notice in the Original Software prohibiting it from being + distributed or otherwise made available under any + subsequent version of the License, You must distribute and + make the Covered Software available under the terms of the + version of the License under which You originally received + the Covered Software. Otherwise, You may also choose to + use, distribute or otherwise make the Covered Software + available under the terms of any subsequent version of the + License published by the license steward. + 4.3. Modified Versions. + When You are an Initial Developer and You want to create a + new license for Your Original Software, You may create and + use a modified version of this License if You: (a) rename + the license and remove any references to the name of the + license steward (except to note that the license differs + from this License); and (b) otherwise make it clear that + the license contains terms which differ from this License. + 5. DISCLAIMER OF WARRANTY. + COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" + BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED + SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR + PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND + PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY + COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE + INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF + ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF + WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS + DISCLAIMER. + 6. TERMINATION. + 6.1. This License and the rights granted hereunder will + terminate automatically if You fail to comply with terms + herein and fail to cure such breach within 30 days of + becoming aware of the breach. Provisions which, by their + nature, must remain in effect beyond the termination of + this License shall survive. + 6.2. If You assert a patent infringement claim (excluding + declaratory judgment actions) against Initial Developer or + a Contributor (the Initial Developer or Contributor against + whom You assert such claim is referred to as "Participant") + alleging that the Participant Software (meaning the + Contributor Version where the Participant is a Contributor + or the Original Software where the Participant is the + Initial Developer) directly or indirectly infringes any + patent, then any and all rights granted directly or + indirectly to You by such Participant, the Initial + Developer (if the Initial Developer is not the Participant) + and all Contributors under Sections 2.1 and/or 2.2 of this + License shall, upon 60 days notice from Participant + terminate prospectively and automatically at the expiration + of such 60 day notice period, unless if within such 60 day + period You withdraw Your claim with respect to the + Participant Software against such Participant either + unilaterally or pursuant to a written agreement with + Participant. + 6.3. In the event of termination under Sections 6.1 or 6.2 + above, all end user licenses that have been validly granted + by You or any distributor hereunder prior to termination + (excluding licenses granted to You by any distributor) + shall survive termination. + 7. LIMITATION OF LIABILITY. + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE + INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF + COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE + LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK + STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL + INJURY RESULTING FROM SUCH PARTY�S NEGLIGENCE TO THE EXTENT + APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO + NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR + CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT + APPLY TO YOU. + 8. U.S. GOVERNMENT END USERS. + The Covered Software is a "commercial item, as that term is + defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial + computer software (as that term is defined at 48 C.F.R. � + 252.227-7014(a)(1)) and "commercial computer software + documentation" as such terms are used in 48 C.F.R. 12.212 (Sept. + 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 + through 227.7202-4 (June 1995), all U.S. Government End Users + acquire Covered Software with only those rights set forth herein. + This U.S. Government Rights clause is in lieu of, and supersedes, + any other FAR, DFAR, or other clause or provision that addresses + Government rights in computer software under this License. + 9. MISCELLANEOUS. + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the + extent necessary to make it enforceable. This License shall be + governed by the law of the jurisdiction specified in a notice + contained within the Original Software (except to the extent + applicable law, if any, provides otherwise), excluding such + jurisdiction�s conflict-of-law provisions. Any litigation + relating to this License shall be subject to the jurisdiction of + the courts located in the jurisdiction and venue specified in a + notice contained within the Original Software, with the losing + party responsible for costs, including, without limitation, court + costs and reasonable attorneys� fees and expenses. The + application of the United Nations Convention on Contracts for the + International Sale of Goods is expressly excluded. Any law or + regulation which provides that the language of a contract shall + be construed against the drafter shall not apply to this License. + You agree that You alone are responsible for compliance with the + United States export administration regulations (and the export + control laws and regulation of any other countries) when You use, + distribute or otherwise make available any Covered Software. + 10. RESPONSIBILITY FOR CLAIMS. + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or + indirectly, out of its utilization of rights under this License + and You agree to work with Initial Developer and Contributors to + distribute such responsibility on an equitable basis. Nothing + herein is intended or shall be deemed to constitute any admission + of liability. +===================================================== + + + +===================================================== + +ANTLR 3 License + +[The BSD License] +Copyright (c) 2003-2006, Terence Parr +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the author nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================== + + +===================================================== +JDOM JAR LICENSE + +$Id$ + +Copyright (C) 2000-2004 Jason Hunter & Brett McLaughlin. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright +notice, this list of conditions, and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions, and the disclaimer that follows +these conditions in the documentation and/or other materials +provided with the distribution. + +3. The name "JDOM" must not be used to endorse or promote products +derived from this software without prior written permission. For +written permission, please contact . + +4. Products derived from this software may not be called "JDOM", nor +may "JDOM" appear in their name, without prior written permission +from the JDOM Project Management . + +In addition, we request (but do not require) that you include in the +end-user documentation provided with the redistribution and/or in the +software itself an acknowledgement equivalent to the following: +"This product includes software developed by the + JDOM Project (http://www.jdom.org/)." +Alternatively, the acknowledgment may be graphical using the logos +available at http://www.jdom.org/images/logos. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +This software consists of voluntary contributions made by many +individuals on behalf of the JDOM Project and was originally +created by Jason Hunter and +Brett McLaughlin . For more information +on the JDOM Project, please see . + +===================================================== + + +===================================================== + +jMock Project License + +Copyright (c) 2000-2003, jMock.org +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. Redistributions in binary form +must reproduce the above copyright notice, this list of conditions and the +following disclaimer in the documentation and/or other materials provided with +the distribution. + +Neither the name of jMock nor the names of its contributors may be used to +endorse or promote products derived from this software without specific prior +written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================== + + +===================================================== + +JSTL License + +JavaServer Pages(TM) Standard Tag Library (JSTL) Specification 1.1 Maintenance +Release, Download +In order to obtain JavaServer Pages(TM) Standard Tag Library (JSTL) +Specification 1.1 Maintenance Release you must agree to the software +license below: + +SUN MICROSYSTEMS, INC. IS WILLING TO LICENSE THIS +SPECIFICATION TO YOU ONLY UPON THE CONDITION THAT YOU +ACCEPT ALL OF THE TERMS CONTAINED IN THIS LICENSE AGREEMENT +("AGREEMENT"). PLEASE READ THE TERMS AND CONDITIONS OF THIS +LICENSE CAREFULLY. BY DOWNLOADING THIS SPECIFICATION, YOU +ACCEPT THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT. +IF YOU ARE NOT WILLING TO BE BOUND BY ITS TERMS, SELECT THE +"DECLINE" BUTTON AT THE BOTTOM OF THIS PAGE AND THE +DOWNLOADING PROCESS WILL NOT CONTINUE. + +JavaServer Pages(TM) Standard Tag Library (JSTL) +Specification ("Specification") Version: 1.1 Status: FCS, +Maintenance Release Release: November 24, 2003 + +Copyright 2003 Sun Microsystems, Inc. 4150 Network Circle, +Santa Clara, California 95054, U.S.A All rights reserved. + +NOTICE; LIMITED LICENSE GRANTS Sun Microsystems, Inc. +("Sun") hereby grants you a fully-paid, non-exclusive, +non-transferable, worldwide, limited license (without the +right to sublicense), under the Sun's applicable +intellectual property rights to view, download, use and +reproduce the Specification only for the purpose of +internal evaluation, which shall be understood to include +developing applications intended to run on an +implementation of the Specification provided that such +applications do not themselves implement any portion(s) of +the Specification. Sun also grants you a perpetual, +non-exclusive, worldwide, fully paid-up, royalty free, +limited license (without the right to sublicense) under any +applicable copyrights or patent rights it may have in the +Specification to create and/or distribute an Independent +Implementation of the Specification that: (i) fully +implements the Spec(s) including all its required +interfaces and functionality; (ii) does not modify, subset, +superset or otherwise extend the Licensor Name Space, or +include any public or protected packages, classes, Java +interfaces, fields or methods within the Licensor Name +Space other than those required/authorized by the +Specification or Specifications being implemented; and +(iii) passes the TCK (including satisfying the requirements +of the applicable TCK Users Guide) for such Specification. +The foregoing license is expressly conditioned on your not +acting outside its scope. No license is granted hereunder +for any other purpose. You need not include limitations +(i)-(iii) from the previous paragraph or any other +particular "pass through" requirements in any license You +grant concerning the use of your Independent Implementation +or products derived from it. However, except with respect +to implementations of the Specification (and products +derived from them) that satisfy limitations (i)-(iii) from +the previous paragraph, You may neither: (a) grant or +otherwise pass through to your licensees any licenses under +Sun's applicable intellectual property rights; nor (b) +authorize your licensees to make any claims concerning +their implementation's compliance with the Spec in +question. + +For the purposes of this Agreement: "Independent +Implementation" shall mean an implementation of the +Specification that neither derives from any of Sun's source +code or binary code materials nor, except with an +appropriate and separate license from Sun, includes any of +Sun's source code or binary code materials; and "Licensor +Name Space" shall mean the public class or interface +declarations whose names begin with "java", "javax", +"com.sun" or their equivalents in any subsequent naming +convention adopted by Sun through the Java Community +Process, or any recognized successors or replacements +thereof. + +This Agreement will terminate immediately without notice +from Sun if you fail to comply with any material provision +of or act outside the scope of the licenses granted above. + +TRADEMARKS No right, title, or interest in or to any +trademarks, service marks, or trade names of Sun or Sun's +licensors is granted hereunder. Sun, Sun Microsystems, the +Sun logo, Java, the Java Coffee Cup logo, J2EE, and +JavaServer Pages are trademarks or registered trademarks of +Sun Microsystems, Inc. in the U.S. and other countries. + +DISCLAIMER OF WARRANTIES THE SPECIFICATION IS PROVIDED "AS +IS". SUN MAKES NO REPRESENTATIONS OR WARRANTIES, EITHER +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE, OR NON-INFRINGEMENT, THAT THE CONTENTS OF THE +SPECIFICATION ARE SUITABLE FOR ANY PURPOSE OR THAT ANY +PRACTICE OR IMPLEMENTATION OF SUCH CONTENTS WILL NOT +INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADE SECRETS +OR OTHER RIGHTS. This document does not represent any +commitment to release or implement any portion of the +Specification in any product. THE SPECIFICATION COULD +INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. +CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION THEREIN; +THESE CHANGES WILL BE INCORPORATED INTO NEW VERSIONS OF THE +SPECIFICATION, IF ANY. SUN MAY MAKE IMPROVEMENTS AND/OR +CHANGES TO THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED +IN THE SPECIFICATION AT ANY TIME. Any use of such changes +in the Specification will be governed by the then-current +license for the applicable version of the Specification. + +LIMITATION OF LIABILITY TO THE EXTENT NOT PROHIBITED BY +LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR +ANY DAMAGES, INCLUDING WITHOUT LIMITATION, LOST REVENUE, +PROFITS OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, +INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND +REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR +RELATED TO ANY FURNISHING, PRACTICING, MODIFYING OR ANY USE +OF THE SPECIFICATION, EVEN IF SUN AND/OR ITS LICENSORS HAVE +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You will +indemnify, hold harmless, and defend Sun and its licensors +from any claims arising or resulting from: (i) your use of +the Specification; (ii) the use or distribution of your +Java application, applet and/or clean room implementation; +and/or (iii) any claims that later versions or releases of +any Specification furnished to you are incompatible with +the Specification provided to you under this license. + +RESTRICTED RIGHTS LEGEND U.S. Government: If this +Specification is being acquired by or on behalf of the U.S. +Government or by a U.S. Government prime contractor or +subcontractor (at any tier), then the Government's rights +in the Specification and accompanying documentation shall +be only as set forth in this license; this is in accordance +with 48 C.F.R. 227.7201 through 227.7202-4 (for Department +of Defense (DoD) acquisitions) and with 48 C.F.R. 2.101 and +12.212 (for non-DoD acquisitions). + +REPORT You may wish to report any ambiguities, +inconsistencies or inaccuracies you may find in connection +with your use of the Specification ("Feedback"). To the +extent that you provide Sun with any Feedback, you hereby: +(i) agree that such Feedback is provided on a +non-proprietary and non-confidential basis, and (ii) grant +Sun a perpetual, non-exclusive, worldwide, fully paid-up, +irrevocable license, with the right to sublicense through +multiple levels of sublicensees, to incorporate, disclose, +and use without limitation the Feedback for any purpose +related to the Specification and future versions, +implementations, and test suites thereof. + +===================================================== + + + +===================================================== + +ODMG 2.0 ODL Metadata and OML Interfaces for Java (JDK 1.2) + +Copyright (c) 1999 E. Wray Johnson. All rights reserved.Developed for use and +distribution by the Object Data Management Group (ODMG).Please contact the +author at ejohnson@carolina.rr.com for issues pertaining to the use of this +software. Do not contact the ODMG about any questions or issues that may arise +regarding the use of this software. + +These interfaces were developed from the specifications in the Object Database +Standard: ODMG 2.0book. Please refer to the book for a complete description of +the interfaces and their intended use.You can obtain the book through a +bookstore or directly from the publishers.Every effort has been made by the +author to adhere strictly to the specification, however common Java naming +conventions were substituted for consistency and clarity for Java developers. +This software is currently being upgraded to adhere to the ODMG 3.0 standard, +so please check this site for future updates. + + +LICENSE AGREEMENT +Redistribution of this software is permitted provided that the following +conditions are met: + +1. Redistributions of source or binary code formats must retain the above +copyright notice. +2. Redistribution in any product and all advertising materials mentioning +features or use of this software must display the following acknowledgment: +"This product includes +copyrighted software developed by E. Wray Johnson for use and distribution by +the Object Data Management Group (http://www.odmg.org/)." + +NO-NONSENSE DISCLAIMER +THIS SOFTWARE IS FREE AND PROVIDED "AS-IS" BY THE AUTHOR E. WRAY JOHNSON WHO +ASSUMES LIABILITY TO THE EXTENT OF THE AMOUNT THAT IS HEREBY BEING CHARGED FOR +THE SOFTWARE. + +===================================================== + + +===================================================== + + +Common Public License Version 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC +LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM +CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial code and +documentation distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + + i) changes to the Program, and + + ii) additions to the Program; + + where such changes and/or additions to the Program originate from and are +distributed by that particular Contributor. A Contribution 'originates' from a +Contributor if it was added to the Program by such Contributor itself or anyone +acting on such Contributor's behalf. Contributions do not include additions to +the Program which: (i) are separate modules of software distributed in +conjunction with the Program under their own license agreement, and (ii) are not +derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor which are +necessarily infringed by the use or sale of its Contribution alone or when +combined with the Program. + +"Program" means the Contributions distributed in accordance with this Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, +including all Contributors. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free copyright license to +reproduce, prepare derivative works of, publicly display, publicly perform, +distribute and sublicense the Contribution of such Contributor, if any, and such +derivative works, in source code and object code form. + + b) Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed +Patents to make, use, sell, offer to sell, import and otherwise transfer the +Contribution of such Contributor, if any, in source code and object code form. +This patent license shall apply to the combination of the Contribution and the +Program if, at the time the Contribution is added by the Contributor, such +addition of the Contribution causes such combination to be covered by the +Licensed Patents. The patent license shall not apply to any other combinations +which include the Contribution. No hardware per se is licensed hereunder. + + c) Recipient understands that although each Contributor grants the licenses +to its Contributions set forth herein, no assurances are provided by any +Contributor that the Program does not infringe the patent or other intellectual +property rights of any other entity. Each Contributor disclaims any liability to +Recipient for claims brought by any other entity based on infringement of +intellectual property rights or otherwise. As a condition to exercising the +rights and licenses granted hereunder, each Recipient hereby assumes sole +responsibility to secure any other intellectual property rights needed, if any. +For example, if a third party patent license is required to allow Recipient to +distribute the Program, it is Recipient's responsibility to acquire that license +before distributing the Program. + + d) Each Contributor represents that to its knowledge it has sufficient +copyright rights in its Contribution, if any, to grant the copyright license set +forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under its +own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + + b) its license agreement: + + i) effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title and +non-infringement, and implied warranties or conditions of merchantability and +fitness for a particular purpose; + + ii) effectively excludes on behalf of all Contributors all liability for +damages, including direct, indirect, special, incidental and consequential +damages, such as lost profits; + + iii) states that any provisions which differ from this Agreement are offered +by that Contributor alone and not by any other party; and + + iv) states that source code for the Program is available from such +Contributor, and informs licensees how to obtain it in a reasonable manner on or +through a medium customarily used for software exchange. + +When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + + b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained within the +Program. + +Each Contributor must identify itself as the originator of its Contribution, if +any, in a manner that reasonably allows subsequent Recipients to identify the +originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with +respect to end users, business partners and the like. While this license is +intended to facilitate the commercial use of the Program, the Contributor who +includes the Program in a commercial product offering should do so in a manner +which does not create potential liability for other Contributors. Therefore, if +a Contributor includes the Program in a commercial product offering, such +Contributor ("Commercial Contributor") hereby agrees to defend and indemnify +every other Contributor ("Indemnified Contributor") against any losses, damages +and costs (collectively "Losses") arising from claims, lawsuits and other legal +actions brought by a third party against the Indemnified Contributor to the +extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor to +control, and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may participate in +any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial product +offering, Product X. That Contributor is then a Commercial Contributor. If that +Commercial Contributor then makes performance claims, or offers warranties +related to Product X, those performance claims and warranties are such +Commercial Contributor's responsibility alone. Under this section, the +Commercial Contributor would have to defend claims against the other +Contributors related to those performance claims and warranties, and if a court +requires any other Contributor to pay any damages as a result, the Commercial +Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, +NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each +Recipient is solely responsible for determining the appropriateness of using and +distributing the Program and assumes all risks associated with its exercise of +rights under this Agreement, including but not limited to the risks and costs of +program errors, compliance with applicable laws, damage to or loss of data, +programs or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY +CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS +GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under applicable +law, it shall not affect the validity or enforceability of the remainder of the +terms of this Agreement, and without further action by the parties hereto, such +provision shall be reformed to the minimum extent necessary to make such +provision valid and enforceable. + +If Recipient institutes patent litigation against a Contributor with respect to +a patent applicable to software (including a cross-claim or counterclaim in a +lawsuit), then any patent licenses granted by that Contributor to such Recipient +under this Agreement shall terminate as of the date such litigation is filed. In +addition, if Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the Program +itself (excluding combinations of the Program with other software or hardware) +infringes such Recipient's patent(s), then such Recipient's rights granted under +Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to +comply with any of the material terms or conditions of this Agreement and does +not cure such failure in a reasonable period of time after becoming aware of +such noncompliance. If all Recipient's rights under this Agreement terminate, +Recipient agrees to cease use and distribution of the Program as soon as +reasonably practicable. However, Recipient's obligations under this Agreement +and any licenses granted by Recipient relating to the Program shall continue and +survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in +order to avoid inconsistency the Agreement is copyrighted and may only be +modified in the following manner. The Agreement Steward reserves the right to +publish new versions (including revisions) of this Agreement from time to time. +No one other than the Agreement Steward has the right to modify this Agreement. +IBM is the initial Agreement Steward. IBM may assign the responsibility to serve +as the Agreement Steward to a suitable separate entity. Each new version of the +Agreement will be given a distinguishing version number. The Program (including +Contributions) may always be distributed subject to the version of the Agreement +under which it was received. In addition, after a new version of the Agreement +is published, Contributor may elect to distribute the Program (including its +Contributions) under the new version. Except as expressly stated in Sections +2(a) and 2(b) above, Recipient receives no rights or licenses to the +intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the +intellectual property laws of the United States of America. No party to this +Agreement will bring a legal action under this Agreement more than one year +after the cause of action arose. Each party waives its rights to a jury trial in +any resulting litigation. + +===================================================== + +XStream License + +Copyright (c) 2003-2006, Joe Walnes +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list +of conditions and the following disclaimer. Redistributions in binary form must +reproduce the above copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided with the +distribution. + +Neither the name of XStream nor the names of its contributors may be used to +endorse or promote products derived from this software without specific prior +written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================== + + + +===================================================== + +XPP3 License + +Indiana University Extreme! Lab Software License + +Version 1.1.1 + +Copyright (c) 2002 Extreme! Lab, Indiana University. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + +3. The end-user documentation included with the redistribution, if any, + must include the following acknowledgment: + + "This product includes software developed by the Indiana University + Extreme! Lab (http://www.extreme.indiana.edu/)." + +Alternately, this acknowledgment may appear in the software itself, +if and wherever such third-party acknowledgments normally appear. + +4. The names "Indiana Univeristy" and "Indiana Univeristy Extreme! Lab" +must not be used to endorse or promote products derived from this +software without prior written permission. For written permission, +please contact http://www.extreme.indiana.edu/. + +5. Products derived from this software may not use "Indiana Univeristy" +name nor may "Indiana Univeristy" appear in their name, without prior +written permission of the Indiana University. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHORS, COPYRIGHT HOLDERS OR ITS CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================== + + + +===================================================== + +/* XML Writer license + * + * Copyright (c) 2003, Henri Yandell + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the + * following conditions are met: + * + * + Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * + Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * + Neither the name of XmlWriter nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +===================================================== + + +ANTLR LICENSE + +SOFTWARE RIGHTS + +ANTLR 1989-2005 Developed by Terence Parr +Partially supported by University of San Francisco & jGuru.com + +We reserve no legal rights to the ANTLR--it is fully in the +public domain. An individual or company may do whatever +they wish with source code distributed with ANTLR or the +code generated by ANTLR, including the incorporation of +ANTLR, or its output, into commerical software. + +We encourage users to develop software with ANTLR. However, +we do ask that credit is given to us for developing +ANTLR. By "credit", we mean that if you use ANTLR or +incorporate any source code into one of your programs +(commercial product, research project, or otherwise) that +you acknowledge this fact somewhere in the documentation, +research report, etc... If you like ANTLR and have +developed a nice tool with the output, please mention that +you developed it using ANTLR. In addition, we ask that the +headers remain intact in our source code. As long as these +guidelines are kept, we expect to continue enhancing this +system and expect to make other tools available as they are +completed. + +The primary ANTLR guy: + +Terence Parr +parrt@cs.usfca.edu +parrt@antlr.org + +======================================================== + +CASTOR-LICENSE + +Copyright 2000-2002 (C) Intalio Inc. All Rights Reserved. + +Redistribution and use of this software and associated documentation +("Software"), with or without modification, are permitted provided +that the following conditions are met: + +1. Redistributions of source code must retain copyright statements + and notices. Redistributions must also contain a copy of this + document. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. The name "ExoLab" must not be used to endorse or promote products + derived from this Software without prior written permission of + Intalio Inc. For written permission, please contact info@exolab.org. + +4. Products derived from this Software may not be called "Castor" + nor may "Castor" appear in their names without prior written + permission of Intalio Inc. Exolab, Castor and Intalio are + trademarks of Intalio Inc. + +5. Due credit should be given to the ExoLab Project + (http://www.exolab.org/). + +THIS SOFTWARE IS PROVIDED BY INTALIO AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTALIO OR ITS +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +======================================================== + +Jaxen License + + Copyright 2003-2006 The Werken Company. All Rights Reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the Jaxen Project nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +======================================================== + +Jdom License + +Copyright (C) 2000-2002 Brett McLaughlin & Jason Hunter. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the disclaimer that follows + these conditions in the documentation and/or other materials + provided with the distribution. + + 3. The name "JDOM" must not be used to endorse or promote products + derived from this software without prior written permission. For + written permission, please contact license@jdom.org. + + 4. Products derived from this software may not be called "JDOM", nor + may "JDOM" appear in their name, without prior written permission + from the JDOM Project Management (pm@jdom.org). + + In addition, we request (but do not require) that you include in the + end-user documentation provided with the redistribution and/or in the + software itself an acknowledgement equivalent to the following: + "This product includes software developed by the + JDOM Project (http://www.jdom.org/)." + Alternatively, the acknowledgment may be graphical using the logos + available at http://www.jdom.org/images/logos. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + This software consists of voluntary contributions made by many + individuals on behalf of the JDOM Project and was originally + created by Brett McLaughlin and + Jason Hunter . For more information on the + JDOM Project, please see . + + ======================================================== + + Reload License + +RELOAD Tools and Libraries + +Copyright (c) 2002-2004 Oleg Liber, Bill Olivier, Phillip Beauvoir + +This licence covers: + +The Reload "jdom" library +The Reload "diva" library +The Reload "dweezil" library +The Reload "jdom" library +The Reload "moonunit" library +The Reload "xindice" library +The Reload Editor +The Reload SCORM Player +The Reload Schema Viewer Eclipse Plugin + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Project Management Contact: + +Oleg Liber +Bolton Institute of Higher Education +Deane Road +Bolton BL3 5AB +UK + +e-mail: o.liber@bolton.ac.uk + + +Technical Contact: + +Phillip Beauvoir +Bolton Institute of Higher Education +Deane Road +Bolton BL3 5AB +UK + +e-mail: p.beauvoir@bolton.ac.uk + +Web: http://www.reload.ac.uk + + + ======================================================== + + Xerces License + + /* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999-2002 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Xerces" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 1999, International + * Business Machines, Inc., http://www.ibm.com. For more + * information on the Apache Software Foundation, please see + * . + */ + + ======================================================== \ No newline at end of file Index: win_installer/installer/documents/readme.txt =================================================================== diff -u --- win_installer/installer/documents/readme.txt (revision 0) +++ win_installer/installer/documents/readme.txt (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,75 @@ +LAMS 2.1 RC1 - Learning Activity Management System +---------------------------------------------- + +This is a pre-packaged copy of LAMS 2.1 RC1 for Windows 2000, XP, or 2003. +It is designed for LAMS users to explore the new Branching and Optional +Sequences features. We would love some feedback on things you like, things +you don't like, or suggestions for improvements in the wording or icons on +the branching screens. + +This is a "play" version of LAMS. It is NOT designed for production and you +will NOT be able to upgrade it to the real LAMS 2.1. + +If you want to install a production version of LAMS, you should +install LAMS 2.0.4. + +1. Startup and Shutdown +======================= +To use LAMS 2, first make sure it is started - use the 'Start LAMS' shortcut +in the LAMSv2 Start Menu folder if you're not sure. MySQL must be running. +For chat rooms to function, Wildfire must also be running. + +While LAMS 2 is running, you may access the login page using the 'Access +LAMS' short cut in the LAMSv2 Start Menu folder. + +To stop LAMS 2, use the 'Stop LAMS' shortcut in the LAMSv2 Start Menu +folder. + + +2. Server Configuration +======================= +For single user installations (i.e., personal use on your own desktop), please +ignore this section. + +For server deployments, you will probably want to configure the default JVM +memory settings for your server. In C:\lams\jboss-4.0.2\bin\run.bat (or +wherever you installed LAMS 2), find the line near the bottom that says + + set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m + +and adjust the minimum and maximum amount of memory allocated there. + +We also recommend increasing the -XX:MaxPermSize option if you have more than +a couple of users. e.g. + + set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -XX:MaxPermSize=128m + +For Sun JDK versions before 1.5.0_07, the default is 64m. If your Sun JDK +version is 1.5.0_07 or later, the default is 256m. + + +3. Web Resources +================ +Windows Installer Help wiki (includes download links) + + http://wiki.lamsfoundation.org/display/lamsdocs/Windows+Installer+Help + +LAMS 2 developer-oriented information + + http://wiki.lamsfoundation.org/display/lams + +LAMS 2 help documents + + http://wiki.lamsfoundation.org/display/lamsdocs + +Educational and technical forums for help and discussion + + http://www.lamscommunity.org + +LAMS 2 bug tracker + + https://bugs.lamsfoundation.org + +LAMS Foundation + + http://www.lamsfoundation.org Index: win_installer/installer/graphics/favicon.ico =================================================================== diff -u Binary files differ Index: win_installer/installer/graphics/header.bmp =================================================================== diff -u Binary files differ Index: win_installer/installer/graphics/lams2.ico =================================================================== diff -u Binary files differ Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/installer/license-wrapper.txt'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/installer/license.txt'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/installer/readme.txt'. Fisheye: No comparison available. Pass `N' to diff? Index: win_installer/installer/src/installer.nsi =================================================================== diff -u -r5000c6090f45e738aae9d7833ce57ad523d4b0e1 -ra346e8c8f13dc57dfca4a13f75d0b4276969e207 --- win_installer/installer/src/installer.nsi (.../installer.nsi) (revision 5000c6090f45e738aae9d7833ce57ad523d4b0e1) +++ win_installer/installer/src/installer.nsi (.../installer.nsi) (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -46,8 +46,8 @@ !define BUILD "..\..\build\" # installer settings -!define MUI_ICON "${BASE_DEV_DIR}\graphics\lams2.ico" -!define MUI_UNICON "${BASE_DEV_DIR}\graphics\lams2.ico" +!define MUI_ICON "..\graphics\lams2.ico" +!define MUI_UNICON "..\graphics\lams2.ico" Name "LAMS ${VERSION}" ;BrandingText "LAMS ${VERSION} -- built on ${__TIMESTAMP__}" BrandingText "LAMS ${VERSION} -- built on ${__DATE__} ${__TIME__}" @@ -86,7 +86,7 @@ # installer screen progression !insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_LICENSE "..\license.txt" +!insertmacro MUI_PAGE_LICENSE "..\documents\license.txt" !insertmacro MUI_PAGE_COMPONENTS !define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirectoryLeave !insertmacro MUI_PAGE_DIRECTORY @@ -209,9 +209,9 @@ File /a "${BUILD}\lams-stop.exe" File /a "${BUILD}\lams-backup.exe" File /a "${BUILD}\lams-restore.exe" - File /a "..\license.txt" - File /a "..\license-wrapper.txt" - File /a "..\readme.txt" + File /a "..\documents\license.txt" + File /a "..\documents\license-wrapper.txt" + File /a "..\documents\readme.txt" Call SetupStartMenu ${if} $RETAIN_FILES == "1" Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/installer/src/lams-start.nsi'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/installer/src/lams-stop.nsi'. Fisheye: No comparison available. Pass `N' to diff? Index: win_installer/installer/src/lams-update.ini =================================================================== diff -u -r388ec3500ab44f8bbd700dee150266ddf40ca53e -ra346e8c8f13dc57dfca4a13f75d0b4276969e207 --- win_installer/installer/src/lams-update.ini (.../lams-update.ini) (revision 388ec3500ab44f8bbd700dee150266ddf40ca53e) +++ win_installer/installer/src/lams-update.ini (.../lams-update.ini) (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -1,5 +1,5 @@ [Settings] -NumFields=6 +NumFields=8 [Field 1] Type=GroupBox @@ -48,3 +48,19 @@ Right=134 Bottom=50 State=localhost + +[Field 7] +Type=Text +Left=160 +Top=37 +Right=201 +Bottom=50 +State=3306 + +[Field 8] +Type=Label +Left=160 +Top=25 +Right=251 +Bottom=34 +Text=MySql Port... Index: win_installer/java/Alter21Integration.java =================================================================== diff -u --- win_installer/java/Alter21Integration.java (revision 0) +++ win_installer/java/Alter21Integration.java (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,198 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +import java.sql.Connection; +import java.sql.Date; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.Statement; +import java.util.ArrayList; + +/** + * @author jliew + * + */ +public class Alter21Integration { + + /** + * Update 3rd party integration courses to classes, LDEV-1284. + * @throws Exception + */ + public static void main(String[] args) throws Exception { + Alter21Integration me = new Alter21Integration(); + + if (args.length < 4) + { + System.out.println("Usage: java Alter21Integration DB_NAME DB_USERNAME DB_PASSWORD DB_URL"); + System.out.println("Make sure mysql-connector-java-3.x.x-bin.jar is in your classpath."); + System.exit(1); + } + + String dbName = args[0]; + String dbUsername = args[1]; + String dbPassword = args[2]; + String dbUrl = args[3]; + me.execute(dbName, dbUsername, dbPassword, dbUrl); + } + + public void execute(String dbName, String dbUsername, String dbPassword, String dbDriverUrl) throws Exception { + + String dbDriverClass = "com.mysql.jdbc.Driver"; + //String dbDriverUrl = "jdbc:mysql://localhost/" + dbName + "?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true"; + + Class.forName(dbDriverClass); + Connection conn = DriverManager.getConnection(dbDriverUrl, dbUsername, dbPassword); + conn.setAutoCommit(false); + + // change integration orgs from classes to courses, with root org as parent. + String updateToCourseType = "UPDATE lams_organisation " + + "SET organisation_type_id=2, " + + "parent_organisation_id=1 " + + "WHERE organisation_id IN ( " + + "SELECT classid " + + "FROM lams_ext_course_class_map " + + ")"; + + // we want to give these newly converted courses their own workspaces; + String getCoursesWithoutWorkspaces = "SELECT organisation_id, name " + + "FROM lams_organisation " + + "WHERE organisation_type_id=2 " + + "AND workspace_id IS NULL"; + + // normal folder; + String insertNormalFolder = "INSERT INTO lams_workspace_folder (name, user_id, create_date_time, " + + "last_modified_date_time, lams_workspace_folder_type_id) " + + "VALUES (?, ?, ?, ?, ?)"; + + // and run sequence folder + String insertRunSequencesFolder = "INSERT INTO lams_workspace_folder (name, user_id, create_date_time, " + + "last_modified_date_time, lams_workspace_folder_type_id, parent_folder_id) " + + "VALUES (?, ?, ?, ?, ?, ?)"; + + // insert workspace, links to its folders, and link to its org + String insertWorkspace = "INSERT INTO lams_workspace (name, default_fld_id, def_run_seq_fld_id) " + + "VALUES (?, ?, ?)"; + + String insertLinks = "INSERT INTO lams_wkspc_wkspc_folder (workspace_id, workspace_folder_id) " + + "VALUES (?, ?)"; + + String updateOrg = "UPDATE lams_organisation " + + "SET workspace_id=? " + + "WHERE organisation_id=?"; + + // Start update + + // update classes to courses + PreparedStatement query = conn.prepareStatement(updateToCourseType); + int numUpdatedCourses = query.executeUpdate(); + System.out.println("Set " + numUpdatedCourses + " integration organisations to courses."); + + // get courses without workspaces + ArrayList orgs = new ArrayList(); + query = conn.prepareStatement(getCoursesWithoutWorkspaces); + ResultSet results = query.executeQuery(); + while (results.next()) { + orgs.add(new OrgDTO(results.getLong("organisation_id"), results.getString("name"))); + } + + // create workspace and folders for each org + for (OrgDTO org : orgs) { + // insert normal folder + query = conn.prepareStatement(insertNormalFolder, Statement.RETURN_GENERATED_KEYS); + query.setString(1, org.getOrgName()); + query.setLong(2, new Long(1)); + query.setDate(3, new Date(System.currentTimeMillis())); + query.setDate(4, new Date(System.currentTimeMillis())); + query.setInt(5, new Integer(1)); + int numInsert = query.executeUpdate(); + results = query.getGeneratedKeys(); + long wkspcFolderId = -1; + if (results.next()) wkspcFolderId = results.getLong(1); + System.out.println("Inserted " + numInsert + " workspace folders, with id " + wkspcFolderId + "."); + + // insert run sequences folder + query = conn.prepareStatement(insertRunSequencesFolder, Statement.RETURN_GENERATED_KEYS); + query.setString(1, org.getOrgName()+" Run Sequences"); + query.setLong(2, new Long(1)); + query.setDate(3, new Date(System.currentTimeMillis())); + query.setDate(4, new Date(System.currentTimeMillis())); + query.setInt(5, new Integer(2)); + query.setLong(6, wkspcFolderId); + numInsert = query.executeUpdate(); + results = query.getGeneratedKeys(); + long wkspcRunFolderId = -1; + if (results.next()) wkspcRunFolderId = results.getLong(1); + System.out.println("Inserted " + numInsert + " workspace folders, with id " + wkspcRunFolderId + "."); + + // insert workspace + query = conn.prepareStatement(insertWorkspace, Statement.RETURN_GENERATED_KEYS); + query.setString(1, org.getOrgName()); + query.setLong(2, wkspcFolderId); + query.setLong(3, wkspcRunFolderId); + numInsert = query.executeUpdate(); + results = query.getGeneratedKeys(); + long wkspcId = -1; + if (results.next()) wkspcId = results.getLong(1); + System.out.println("Inserted " + numInsert + " workspaces, with id " + wkspcId + "."); + + // insert wkspc_wkspc_folder links + query = conn.prepareStatement(insertLinks); + query.setLong(1, wkspcId); + query.setLong(2, wkspcFolderId); + numInsert = query.executeUpdate(); + System.out.println("Inserted " + numInsert + " wkspc_wkspc_folder links."); + query.setLong(1, wkspcId); + query.setLong(2, wkspcRunFolderId); + numInsert = query.executeUpdate(); + System.out.println("Inserted " + numInsert + " wkspc_wkspc_folder links."); + + // update organisation with this workspace + query = conn.prepareStatement(updateOrg); + query.setLong(1, wkspcId); + query.setLong(2, org.getOrgId()); + numInsert = query.executeUpdate(); + System.out.println("Updated " + org.getOrgName() + " with workspace_id " + wkspcId + "."); + } + + conn.commit(); + conn.close(); + } + + public class OrgDTO { + private Long orgId; + private String orgName; + public OrgDTO(Long orgId, String orgName) { + this.orgId = orgId; + this.orgName = orgName; + } + public Long getOrgId() { + return orgId; + } + public String getOrgName() { + return orgName; + } + } + +} + Index: win_installer/java/GetLlidFolderNames.java =================================================================== diff -u --- win_installer/java/GetLlidFolderNames.java (revision 0) +++ win_installer/java/GetLlidFolderNames.java (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,110 @@ +import java.io.File; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Properties; + + +public class GetLlidFolderNames { + + private String title; + private String dbDriverClass; + private String dbDriverUrl; + private String dbUsername; + private String dbPassword; + + /** + * Dump out a list of all the nodes in the content repository, with their type and expected paths + * @throws Exception + */ + public static void main(String[] args) throws Exception { + GetLlidFolderNames me = new GetLlidFolderNames(); + + if (args.length < 4) + { + System.out.println("Usage: Java GetLlidFolderNames title dbDriverUrl dbUsername dbPassword"); + System.exit(1); + } + + String title = args[0]; + String dbDriverUrl = args[1]; + String dbUsername = args[2]; + String dbPassword = args[3]; + me.execute(title, dbDriverUrl, dbUsername, dbPassword); + } + + public void execute(String title, String dbDriverUrl, String dbUsername, String dbPassword) throws Exception + { + + + this.dbDriverClass = "com.mysql.jdbc.Driver"; + this.dbDriverUrl = dbDriverUrl; + this.dbUsername = dbUsername; + this.dbPassword = dbPassword; + this.title = title; + + String getLlid = "SELECT learning_library_id FROM lams_learning_library WHERE title = \'" + title +"\'"; + // SELECT learning_library_id FROM lams_learning_library WHERE title = $\'Chat and Scribe$\';" + + + + + + + Class.forName(dbDriverClass); + Connection conn = DriverManager.getConnection(dbDriverUrl, dbUsername, dbPassword); + conn.setAutoCommit(false); + PreparedStatement stmt = conn.prepareStatement(getLlid); + ResultSet results = stmt.executeQuery(); + + if (results.first()) + { + System.out.print(results.getString("learning_library_id")); + } + else + { + System.out.println("Could not find llid for:" + title); + System.exit(1); + } + /* + while (results.next()) + { + Long uid = results.getLong("uid"); + Boolean room_created = results.getBoolean("room_created"); + String jabber_room = results.getString("jabber_room"); + + String set_jabber_room; + Boolean set_room_created; + // checking if jabber_room is null + if (results.wasNull()) { + // tool session was created by the room doesnt exist on the jabber server + // generating a unique jabber room name + set_room_created = false; + set_jabber_room = (String) idGenerator.generate(null, null) + "@" + XMPPConference; + + } else { + // jabber has already been created + set_room_created = true; + set_jabber_room = jabber_room; + } + + stmtUpdate.setBoolean(1, set_room_created); + stmtUpdate.setString(2, set_jabber_room); + stmtUpdate.setLong(3, uid); + stmtUpdate.addBatch(); + + System.out.print(uid + "\t"); + System.out.print(room_created + "\t"); + System.out.print(jabber_room + "\n"); + + } + int[] upCount = stmtUpdate.executeBatch(); + */ + + + conn.commit(); + conn.close(); + } + +} \ No newline at end of file Index: win_installer/java/LocalPortScanner.java =================================================================== diff -u --- win_installer/java/LocalPortScanner.java (revision 0) +++ win_installer/java/LocalPortScanner.java (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,38 @@ +/* +** Scans the local computer ports +** +** Coded by C.K Nimmagadda +** Copyright 2005 (c) LAMS International +** +*/ + +import java.net.*; +import java.io.*; + +public class LocalPortScanner { + + public static void main(String[] args) { + + int current = 0; + for (int i = 0; i < args.length; i++) { + try { + ServerSocket server = new ServerSocket(Integer.parseInt(args[i])); + } + catch (IOException e) { + if (current < 2) + { + System.out.print("Warning: There is a server already on port " + args[i] + " "); + } + else + { + System.out.print(args[i] + " "); + } + current = current+2; + } + } + System.out.println("."); + System.exit(current); + + } + +} Index: win_installer/java/backup/UpdateLAMS202Chat.java =================================================================== diff -u --- win_installer/java/backup/UpdateLAMS202Chat.java (revision 0) +++ win_installer/java/backup/UpdateLAMS202Chat.java (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,130 @@ +import java.io.File; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.Statement; + +import java.util.Properties; + +import org.hibernate.Hibernate; +import org.hibernate.id.Configurable; +import org.hibernate.id.IdentifierGenerator; +import org.hibernate.id.UUIDHexGenerator; + +public class UpdateLAMS202Chat { + + private String XMPPConference; + private String dbDriverClass; + private String dbDriverUrl; + private String dbUsername; + private String dbPassword; + private String crPath; + + /** + * Dump out a list of all the nodes in the content repository, with their type and expected paths + * @throws Exception + */ + public static void main(String[] args) throws Exception { + UpdateLAMS202Chat me = new UpdateLAMS202Chat(); + + if (args.length < 4) + { + System.out.println("Usage: Java XMPPConference dbDriverUrl dbUsername dbPassword crPath"); + System.exit(1); + } + + String dbDriverUrl = args[0]; + String dbUsername = args[1]; + String dbPassword = args[2]; + String crPath = args[3]; + me.execute(dbDriverUrl, dbUsername, dbPassword, crPath); + } + + public void execute(String dbDriverUrl, String dbUsername, String dbPassword, String crPath) throws Exception { + + dbDriverClass = "com.mysql.jdbc.Driver"; + /* + dbDriverUrl = "jdbc:mysql://localhost/lams_demo?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true"; + dbUsername = "root"; + dbPassword = "secret4141"; + crPath = "/var/opt/lams/repository"; + */ + + this.dbDriverClass = dbDriverClass; + this.dbDriverUrl = dbDriverUrl; + this.dbUsername = dbUsername; + this.dbPassword = dbPassword; + this.crPath = crPath; + + String getChatSessions = "SELECT uid, jabber_room, room_created from tl_lachat11_session"; + String getXmppConference = "SELECT config_value FROM lams_configuration WHERE config_key='XmppConference'"; + String updateChatSessions = "UPDATE tl_lachat11_session set room_created=?, jabber_room=? where uid=?"; + + Class.forName(dbDriverClass); + Connection conn = DriverManager.getConnection(dbDriverUrl, dbUsername, dbPassword); + conn.setAutoCommit(false); + PreparedStatement stmt = conn.prepareStatement(getChatSessions); + ResultSet results = stmt.executeQuery(); + + // getting XmppConference value from db. + Statement xmppStmt = conn.createStatement(); + ResultSet xmppResult = xmppStmt.executeQuery(getXmppConference); + + if (xmppResult.next()) + { + XMPPConference = xmppResult.getString(1); + System.out.println(XMPPConference); + } + else + { + conn.close(); + System.out.println("Could not find XMPP Conference."); + System.exit(1); + } + + PreparedStatement stmtUpdate = conn.prepareStatement(updateChatSessions); + + IdentifierGenerator idGenerator = new UUIDHexGenerator(); + ((Configurable) idGenerator).configure(Hibernate.STRING, + new Properties(), null); + + while (results.next()) + { + Long uid = results.getLong("uid"); + Boolean room_created = results.getBoolean("room_created"); + String jabber_room = results.getString("jabber_room"); + + String set_jabber_room; + Boolean set_room_created; + // checking if jabber_room is null + if (results.wasNull()) { + // tool session was created by the room doesnt exist on the jabber server + // generating a unique jabber room name + set_room_created = false; + set_jabber_room = (String) idGenerator.generate(null, null) + "@" + XMPPConference; + + } else { + // jabber has already been created + set_room_created = true; + set_jabber_room = jabber_room; + } + + stmtUpdate.setBoolean(1, set_room_created); + stmtUpdate.setString(2, set_jabber_room); + stmtUpdate.setLong(3, uid); + stmtUpdate.addBatch(); + + System.out.print(uid + "\t"); + System.out.print(room_created + "\t"); + System.out.print(jabber_room + "\n"); + + } + + int[] upCount = stmtUpdate.executeBatch(); + + conn.commit(); + conn.close(); + } + +} \ No newline at end of file Index: win_installer/java/checkmysql.java =================================================================== diff -u --- win_installer/java/checkmysql.java (revision 0) +++ win_installer/java/checkmysql.java (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,92 @@ +import java.io.File; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.Statement; +import java.util.Properties; +import java.sql.SQLException; +import java.net.UnknownHostException; + +public class checkmysql +{ + private String version; + private String dbDriverClass; + private String dbDriverUrl; + private String dbUsername; + private String dbPassword; + + // Check that the mysql version is valid + public static void main(String[] args) throws SQLException, UnknownHostException + { + checkmysql me = new checkmysql(); + + if (args.length < 4) + { + System.out.println("Usage: Java checkmysql dbDriverUrl dbUsername dbPassword version"); + System.exit(1); + } + else + { + try + { + me.execute(args[0], args[1], args[2], args[3]); + } + catch (UnknownHostException e) + { + System.out.println("MySql Host is not valid, please enter a new value"); + System.exit(1); + } + } + } + + public void execute(String url, String user, String pass, String version) throws SQLException, UnknownHostException + { + try{ + this.version = version; + this.dbDriverClass = "com.mysql.jdbc.Driver"; + this.dbDriverUrl = url; + this.dbUsername = user; + this.dbPassword = pass; + + Class.forName(dbDriverClass); + Connection conn = DriverManager.getConnection(dbDriverUrl, dbUsername, dbPassword); + conn.setAutoCommit(false); + PreparedStatement stmt = conn.prepareStatement("SELECT * FROM lams_configuration WHERE config_key= \"Version\""); + ResultSet results = stmt.executeQuery(); + + if (results.first() == false) + { + throw new SQLException("Could not find LAMS database using url: " + dbDriverUrl); + } + else + { + String dbVersion = results.getString("config_value"); + if (dbVersion.equals(version) == false) + { + throw new SQLException("Your current LAMS version: " +dbVersion+ " is not compatible with this upgrade. Required version: " +version); + } + else + { + System.out.println("LAMS version is compatible with this upgrade.\n"); + } + } + conn.close(); + } + catch (SQLException e) + { + System.out.println(e.getMessage()); + System.out.println("Upgrade failed. LAMS database check failed.\n"); + System.exit(1); + } + + catch (Exception e) + { + System.out.println(e.getMessage()); + System.out.println("Upgrade failed. Unknown failure checking LAMS database version.\n"); + e.printStackTrace(); + System.exit(1); + } + } + +} Index: win_installer/java/checkmysqlversion.java =================================================================== diff -u --- win_installer/java/checkmysqlversion.java (revision 0) +++ win_installer/java/checkmysqlversion.java (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,97 @@ +import java.io.File; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.Statement; +import java.util.Properties; +import java.sql.SQLException; +import java.net.UnknownHostException; + +public class checkmysqlversion +{ + private String dbDriverClass; + private String dbDriverUrl; + private String dbUsername; + private String dbPassword; + + private double minMysqlVersion; + + // Check that the mysql version is valid + public static void main(String[] args) throws SQLException, UnknownHostException + { + System.out.println("Java program invoked"); + checkmysqlversion me = new checkmysqlversion(); + + System.out.println("args.length: " + args.length); + if (args.length < 3) + { + System.out.println("Usage: Java checkmysqlversion dbDriverUrl dbUsername dbPassword"); + System.exit(1); + } + else + { + try + { + me.execute(args[0], args[1], args[2]); + } + catch (UnknownHostException e) + { + System.out.println("MySql Host is not valid, please enter a new value"); + System.exit(1); + } + } + } + + public void execute(String url, String user, String pass) throws SQLException, UnknownHostException + { + try{ + this.dbDriverClass = "com.mysql.jdbc.Driver"; + this.dbDriverUrl = url; + this.dbUsername = user; + this.dbPassword = pass; + this.minMysqlVersion = 5.0; + + Class.forName(dbDriverClass); + Connection conn = DriverManager.getConnection(dbDriverUrl, dbUsername, dbPassword); + conn.setAutoCommit(false); + //PreparedStatement stmt = conn.prepareStatement("SELECT * FROM lams_configuration WHERE config_key= \"Version\""); + PreparedStatement stmt = conn.prepareStatement("SHOW variables WHERE Variable_name=\"version\""); + ResultSet results = stmt.executeQuery(); + + if (results.first() == false) + { + throw new SQLException("Could not find mysql version usring url: " + dbDriverUrl); + } + else + { + String mysqlVersion = results.getString("Value"); + // If mysqlversion >= 5.0 + if (Double.parseDouble(mysqlVersion.substring(0,3)) >= minMysqlVersion ) + { + System.out.println("MySQL version " + mysqlVersion + " is compatible with this version of LAMS.\n"); + } + else + { + throw new SQLException("The MySQL version you are attemping to use: " +mysqlVersion+ " is not compatible with this version of LAMS. Required version: " + minMysqlVersion); + } + } + conn.close(); + } + catch (SQLException e) + { + System.out.println(e.getMessage()); + System.out.println("\nMySQL check failed. Please check your root password.\n"); + System.exit(1); + } + + catch (Exception e) + { + System.out.println(e.getMessage()); + System.out.println("\nUnknown failure checking MySQL version.\n"); + e.printStackTrace(); + System.exit(1); + } + } + +} Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/license-wrapper.txt'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/license.txt'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/readme.txt'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/Array.nsh'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/Array.nsi'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/Functions.nsh'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/GetLlidFolderNames.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/LanguagePack.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/LocalPortScanner.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/Update204.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/UpdateLAMS202Chat.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/backup-finish.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/backup.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/backup.nsh'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/backup.nsi'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/build.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/checkmysql.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/checkmysqlversion.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/final.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/installer.nsi'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/lams-start.nsi'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/lams-stop.nsi'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/lams-update.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/lams.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/lams2.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/lams_components.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/language-pack.nsi'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/mysql.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/revert-dir.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/revert.nsi'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/uninstall.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/update-204.nsi'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/updateLocales.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/updater.nsi'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/src/wildfire.ini'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/buildcombinedtasks.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/index.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/lamsauthentication.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/log4j.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/login-config.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/mysql-ds.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/news-2.0.2.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/revert.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/run.bat'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/server.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/update-core-database.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/update-deploy-tools.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/update_lams_configuration.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag a346e8c8f13dc57dfca4a13f75d0b4276969e207 refers to a dead (removed) revision in file `win_installer/templates/wrapper.conf'. Fisheye: No comparison available. Pass `N' to diff? Index: win_installer/updater/conf/log4j.xml =================================================================== diff -u --- win_installer/updater/conf/log4j.xml (revision 0) +++ win_installer/updater/conf/log4j.xml (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: win_installer/updater/conf/login-config.xml =================================================================== diff -u --- win_installer/updater/conf/login-config.xml (revision 0) +++ win_installer/updater/conf/login-config.xml (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + guest + java:/DefaultDS + SELECT PASSWD FROM JMS_USERS WHERE USERID=? + SELECT ROLEID, 'Roles' FROM JMS_ROLES WHERE USERID=? + + + + + + + + + + + sa + sa + + jboss.jca:service=LocalTxCM,name=DefaultDS + + + + + + + + guest + guest + guest + jboss.jca:service=TxCM,name=JmsXA + + + + + + + + + props/jmx-console-users.properties + props/jmx-console-roles.properties + + + + + + + + + web-console-users.properties + web-console-roles.properties + + + + + + + + + anonymous + + + + + + + + + + + + + + + + java:/jdbc/lams-ds + select password from lams_user where login=? + + SELECT DISTINCT r.name,'Roles' FROM + lams_user u LEFT OUTER JOIN lams_user_organisation uo USING(user_id) + LEFT OUTER JOIN lams_user_organisation_role urr USING(user_organisation_id) + LEFT OUTER JOIN lams_role r USING (role_id) + WHERE u.login=? + + + + + + + + Index: win_installer/updater/conf/news.html =================================================================== diff -u --- win_installer/updater/conf/news.html (revision 0) +++ win_installer/updater/conf/news.html (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,21 @@ +

Latest News & Updates

+
    +
  • +

    Welcome to LAMS 2.1 RC1!

    +

    This is a pre-release version of LAMS designed give you a chance to play with Branching. Read about the + changes on the 2.1 RC1 release page.
    + + If you want to learn more about LAMS, + join the LAMS Community where teachers and developers + share their experiences and ideas on the usage of LAMS.
    + + Found a bug or want to comment on the new features? + Let us know about it. + The bugs we already know about are listed in our + Issues + Tracker. Also have a look at the LAMS Roadmap for upcoming features.
    + + LAMS is currently being translated to 25 languages by more than 50 volunteers. + Want to help out?

    +
  • +
\ No newline at end of file Index: win_installer/updater/documents/license-wrapper.txt =================================================================== diff -u --- win_installer/updater/documents/license-wrapper.txt (revision 0) +++ win_installer/updater/documents/license-wrapper.txt (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,53 @@ +Copyright (c) 1999, 2006 Tanuki Software, Inc. + +Permission is hereby granted, free of charge, to any person +obtaining a copy of the Java Service Wrapper and associated +documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sub-license, +and/or sell copies of the Software, and to permit persons to +whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + + +Portions of the Software have been derived from source code +developed by Silver Egg Technology under the following license: + +BEGIN Silver Egg Techology License ----------------------------------- + + Copyright (c) 2001 Silver Egg Technology + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sub-license, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + +END Silver Egg Techology License ------------------------------------- \ No newline at end of file Index: win_installer/updater/documents/license.txt =================================================================== diff -u --- win_installer/updater/documents/license.txt (revision 0) +++ win_installer/updater/documents/license.txt (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,2606 @@ +LAMS 2.0.4 is released under the GPL license detailed below. This package +also includes other libraries/packages, whose respective licenses are +detailed below. + +Library/Package License +-------------------------------------------------------------------------------- +wrapper.jar Silver Egg Techology License (see license-wrapper.txt) +antlr.jar Antlr 3 License +axis-ant.jar Apache License 2.0 +axis.jar Apache License 2.0 +cglib-nodep-2.1_2.jar Apache License 2.0 +cglib_jboss404GA.jar Apache License 2.0 +commons-beanutils.jar Apache License 2.0 +commons-codec-1.3.jar Apache License 2.0 +commons-collections.jar Apache License 2.0 +commons-digester.jar Apache License 2.0 +commons-discovery-0.2.jar Apache Software License 1.1 +commons-fileupload.jar Apache Software License 1.1 +commons-lang-2.0.jar Apache Software License 1.1 +commons-logging.jar Apache License 2.0 +commons-validator.jar Apache License 2.0 +FCKeditor-2.3.jar CDL Closed Distribution License +gnujaxp.jar GNU General Public License +hibernate3.jar GNU General Public License +jakarta-oro.jar Apache Software License 1.1 +jaxrpc.jar CDDL (Common Development and + Distribution License 1.0) +JBoss 4.0.2 GNU Lesser General Public Licence +jboss-cache.jar GNU Lesser General Public Licence +jboss-common.jar GNU Lesser General Public Licence +jboss-jmx.jar GNU Lesser General Public Licence +jboss-system.jar GNU Lesser General Public Licence +jcommon-1.0.0.jar GNU Lesser General Public Licence +jdom.jar Jdom Jar License +jfreechart-1.0.1.jar GNU Lesser General Public Licence +jgroups.jar GNU Lesser General Public Licence +jmock-2003-03-19.jar jMock Project License +joda-time-0.98.jar Joda Software License 1.0 +jsMath Apache License 2.0 +jstl.jar JSTL License 1.1 +log4j-1.2.13.jar Apache Software License 1.1 +mysql-connector- (CDDL Common Development and + java-3.1.12-bin-jar Distribution License 1.0) +odmg-3.0.jar ODMG 2.0 +poi-2.5.1-final Apache Software License 1.1 + -20040804.jar +quartz.jar Apache License 2.0 +saaj.jar (CDDL Common Development and + Distribution License 1.0) +smack.jar Apache License 2.0 +smackx.jar Apache License 2.0 +spring.jar Apache License 2.0 +standard.jar Apache License 2.0 +struts-el.jar Apache License 2.0 +struts.jar Apache License 2.0 +wddx.jar GNU General Public License +wsdl4j-1.5.1.jar CPL Common Public License 0.5 +xml-writer-0.2.jar XML-Write License +xom-1.0.b3.jar GNU Lesser General Public License +xpp3-1.1.3.4d_b4.jar XPP3 License +xstream-1.1.jar xstream Licanse + +SHARE RECOURCES LIBRARY LICENSES +castor-0.9.5.3-xml.jar Castor License +jdom.jar Jdom Jar License +moonunitsrc.jar Reload License +reload-diva.jar Reload License +reload-editor.jar Reload License +reload-jdom.jar Reload License +reload-moonunit.jar Reload License +xercesImpl.jar Apache Software License 1.1 +xml-apis.jar Apache Software License 1.1 +jaxen-full.jar Jaxen Jar License (The Werken + Company) +sax.jar Public Domain +saxpath.jar Jaxen Jar License (The Werken + Company) +-------------------------------------------------------------------------------- + + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + + + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + + +===================================================== +/* + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2000 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + * Portions of this software are based upon public domain software + * originally written at the National Center for Supercomputing Applications, + * University of Illinois, Urbana-Champaign. + */ + ===================================================== + + + + + ===================================================== + + /* + * Joda Software License, Version 1.0 + * + * + * Copyright (c) 2001-2004 Stephen Colebourne. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Joda project (http://www.joda.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The name "Joda" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact licence@joda.org. + * + * 5. Products derived from this software may not be called "Joda", + * nor may "Joda" appear in their name, without prior written + * permission of the Joda project. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE JODA AUTHORS OR THE PROJECT + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Joda project and was originally + * created by Stephen Colebourne . For more + * information on the Joda project, please see . + */ + + ===================================================== + + + +===================================================== + +Closed Distribution License (CDL) + +Agreement +IMPORTANT - READ CAREFULLY: This End-User License Agreement ("EULA") is a legal +agreement between you (either an individual or a single entity) and FREDERICO +CALDEIRA KNABBEN (the "Owner") covering your use of FCKeditor (the �Software�). +Be sure to read the following agreement before using the Software. +TERMS AND CONDITIONS +1. This EULA uses the GNU Lesser General Public License (�LGPL�) as its base. +Agreeing to this license you are also agreeing to be bound to the LGPL license +terms, limited to the changes defined in this EULA. The terms defined in this +EULA override any term present in the LGPL license that conflicts with the EULA. +2. GRANT OF LICENSE. The Owner grants you the right to use the Software and any +related supplements or add-on components published by the Owner, unless +explicitly specified, on your one specific product (�Product�) with the +following special rights: there is no need to distribute the LGPL license with +the Product and no reference to it have to be done; no references to the +Software have to be done in any file distributed with the Product; the source +code of the Software doesn�t have to be distributed along with the Product; you +can remove any file from the Software when integrating it with the Product. It +is agreed that in exchange for the license set forth herein, you will pay a +one-time license fee of US$750 (Seven Hundred and Fifty U.S. Dollars). +3. LICENSE VALIDITY. This EULA is valid only if the Product is a work that uses +the Software, and doesn�t go in competition with the Software in the +marketplace. Whenever this license looses its validity, the LGPL license takes +its place. +4. RESERVATION OF RIGHTS AND OWNERSHIP. The Owner reserves all rights not +expressly granted to you in this EULA. The Software is protected by copyright +and other intellectual property laws and treaties. The Owner owns the title, +copyright, and other intellectual property rights in the Software. The Software +is licensed, not sold. This EULA does not grant you any rights to trademarks or +service the Software marks. +5. TERMINATION. Without prejudice to any other rights, the Owner may terminate +this EULA if you fail to comply with the terms and conditions of this EULA. In +such event, your right to use this Software and the rights to use the files +produced using the Software by third parties terminates automatically and you +must then destroy all copies of the Software in your possession. +6. WARRANTY. Owner represents and warrants that he has full title and ownership +to the Software and has the authority to grant the license hereunder. To the +best of Owner's knowledge the Software does not infringe upon the intellectual +property rights of any third party and that he did not receive any notice +regarding any alleged infringement thereof. +7. DISCLAIMER OF WARRANTIES. The Software and its related material are provided +�AS IS� and without warranty of any kind and the Owner expressly disclaims all +other warranties, expressed or implied, including, but not limited to, the +implied warranties of merchantability and fitness for a particular purpose. +8. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES. +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT +SHALL THE OWNER BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE, +INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, BUT NOT +LIMITED TO, DAMAGES FOR LOSS OF PROFITS OR CONFIDENTIAL OR OTHER +INFORMATION, FOR BUSINESS INTERRUPTION, FOR PERSONAL INJURY, FOR +LOSS OF PRIVACY, FOR FAILURE TO MEET ANY DUTY INCLUDING OF GOOD +FAITH OR OF REASONABLE CARE, FOR NEGLIGENCE, AND FOR ANY OTHER +PECUNIARY OR OTHER LOSS WHATSOEVER) ARISING OUT OF OR IN ANY WAY +RELATED TO THE USE OF OR INABILITY TO USE THE SOFTWARE, THE +PROVISION OF OR FAILURE TO PROVIDE SUPPORT OR OTHER SERVICES, +INFORMATON, SOFTWARE, AND RELATED CONTENT THROUGH THE SOFTWARE +OR OTHERWISE ARISING OUT OF THE USE OF THE SOFTWARE, OR OTHERWISE +UNDER OR IN CONNECTION WITH ANY PROVISION OF THIS EULA, EVEN IN THE +EVENT OF THE FAULT, TORT (INCLUDING NEGLIGENCE), MISREPRESENTATION, +STRICT LIABILITY, BREACH OF CONTRACT, AND EVEN IF THE OWNER HAS BEEN +ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +9. LIMITATION OF LIABILITY. In no vent shall the Owner's liability exceed the +license fee paid, if any. +END OF TERMS AND CONDITIONS + +===================================================== + + + +===================================================== + +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 + + 1. Definitions. + 1.1. "Contributor" means each individual or entity that + creates or contributes to the creation of Modifications. + 1.2. "Contributor Version" means the combination of the + Original Software, prior Modifications used by a + Contributor (if any), and the Modifications made by that + particular Contributor. + 1.3. "Covered Software" means (a) the Original Software, or + (b) Modifications, or (c) the combination of files + containing Original Software with files containing + Modifications, in each case including portions thereof. + 1.4. "Executable" means the Covered Software in any form + other than Source Code. + 1.5. "Initial Developer" means the individual or entity + that first makes Original Software available under this + License. + 1.6. "Larger Work" means a work which combines Covered + Software or portions thereof with code not governed by the + terms of this License. + 1.7. "License" means this document. + 1.8. "Licensable" means having the right to grant, to the + maximum extent possible, whether at the time of the initial + grant or subsequently acquired, any and all of the rights + conveyed herein. + 1.9. "Modifications" means the Source Code and Executable + form of any of the following: + A. Any file that results from an addition to, + deletion from or modification of the contents of a + file containing Original Software or previous + Modifications; + B. Any new file that contains any part of the + Original Software or previous Modification; or + C. Any new file that is contributed or otherwise made + available under the terms of this License. + 1.10. "Original Software" means the Source Code and + Executable form of computer software code that is + originally released under this License. + 1.11. "Patent Claims" means any patent claim(s), now owned + or hereafter acquired, including without limitation, + method, process, and apparatus claims, in any patent + Licensable by grantor. + 1.12. "Source Code" means (a) the common form of computer + software code in which modifications are made and (b) + associated documentation included in or with such code. + 1.13. "You" (or "Your") means an individual or a legal + entity exercising rights under, and complying with all of + the terms of, this License. For legal entities, "You" + includes any entity which controls, is controlled by, or is + under common control with You. For purposes of this + definition, "control" means (a) the power, direct or + indirect, to cause the direction or management of such + entity, whether by contract or otherwise, or (b) ownership + of more than fifty percent (50%) of the outstanding shares + or beneficial ownership of such entity. + 2. License Grants. + 2.1. The Initial Developer Grant. + Conditioned upon Your compliance with Section 3.1 below and + subject to third party intellectual property claims, the + Initial Developer hereby grants You a world-wide, + royalty-free, non-exclusive license: + (a) under intellectual property rights (other than + patent or trademark) Licensable by Initial Developer, + to use, reproduce, modify, display, perform, + sublicense and distribute the Original Software (or + portions thereof), with or without Modifications, + and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, + using or selling of Original Software, to make, have + made, use, practice, sell, and offer for sale, and/or + otherwise dispose of the Original Software (or + portions thereof). + (c) The licenses granted in Sections 2.1(a) and (b) + are effective on the date Initial Developer first + distributes or otherwise makes the Original Software + available to a third party under the terms of this + License. + (d) Notwithstanding Section 2.1(b) above, no patent + license is granted: (1) for code that You delete from + the Original Software, or (2) for infringements + caused by: (i) the modification of the Original + Software, or (ii) the combination of the Original + Software with other software or devices. + 2.2. Contributor Grant. + Conditioned upon Your compliance with Section 3.1 below and + subject to third party intellectual property claims, each + Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + (a) under intellectual property rights (other than + patent or trademark) Licensable by Contributor to + use, reproduce, modify, display, perform, sublicense + and distribute the Modifications created by such + Contributor (or portions thereof), either on an + unmodified basis, with other Modifications, as + Covered Software and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, + using, or selling of Modifications made by that + Contributor either alone and/or in combination with + its Contributor Version (or portions of such + combination), to make, use, sell, offer for sale, + have made, and/or otherwise dispose of: (1) + Modifications made by that Contributor (or portions + thereof); and (2) the combination of Modifications + made by that Contributor with its Contributor Version + (or portions of such combination). + (c) The licenses granted in Sections 2.2(a) and + 2.2(b) are effective on the date Contributor first + distributes or otherwise makes the Modifications + available to a third party. + (d) Notwithstanding Section 2.2(b) above, no patent + license is granted: (1) for any code that Contributor + has deleted from the Contributor Version; (2) for + infringements caused by: (i) third party + modifications of Contributor Version, or (ii) the + combination of Modifications made by that Contributor + with other software (except as part of the + Contributor Version) or other devices; or (3) under + Patent Claims infringed by Covered Software in the + absence of Modifications made by that Contributor. + 3. Distribution Obligations. + 3.1. Availability of Source Code. + Any Covered Software that You distribute or otherwise make + available in Executable form must also be made available in + Source Code form and that Source Code form must be + distributed only under the terms of this License. You must + include a copy of this License with every copy of the + Source Code form of the Covered Software You distribute or + otherwise make available. You must inform recipients of any + such Covered Software in Executable form as to how they can + obtain such Covered Software in Source Code form in a + reasonable manner on or through a medium customarily used + for software exchange. + 3.2. Modifications. + The Modifications that You create or to which You + contribute are governed by the terms of this License. You + represent that You believe Your Modifications are Your + original creation(s) and/or You have sufficient rights to + grant the rights conveyed by this License. + 3.3. Required Notices. + You must include a notice in each of Your Modifications + that identifies You as the Contributor of the Modification. + You may not remove or alter any copyright, patent or + trademark notices contained within the Covered Software, or + any notices of licensing or any descriptive text giving + attribution to any Contributor or the Initial Developer. + 3.4. Application of Additional Terms. + You may not offer or impose any terms on any Covered + Software in Source Code form that alters or restricts the + applicable version of this License or the recipients� + rights hereunder. You may choose to offer, and to charge a + fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Software. + However, you may do so only on Your own behalf, and not on + behalf of the Initial Developer or any Contributor. You + must make it absolutely clear that any such warranty, + support, indemnity or liability obligation is offered by + You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred + by the Initial Developer or such Contributor as a result of + warranty, support, indemnity or liability terms You offer. + 3.5. Distribution of Executable Versions. + You may distribute the Executable form of the Covered + Software under the terms of this License or under the terms + of a license of Your choice, which may contain terms + different from this License, provided that You are in + compliance with the terms of this License and that the + license for the Executable form does not attempt to limit + or alter the recipient�s rights in the Source Code form + from the rights set forth in this License. If You + distribute the Covered Software in Executable form under a + different license, You must make it absolutely clear that + any terms which differ from this License are offered by You + alone, not by the Initial Developer or Contributor. You + hereby agree to indemnify the Initial Developer and every + Contributor for any liability incurred by the Initial + Developer or such Contributor as a result of any such terms + You offer. + 3.6. Larger Works. + You may create a Larger Work by combining Covered Software + with other code not governed by the terms of this License + and distribute the Larger Work as a single product. In such + a case, You must make sure the requirements of this License + are fulfilled for the Covered Software. + 4. Versions of the License. + 4.1. New Versions. + Sun Microsystems, Inc. is the initial license steward and + may publish revised and/or new versions of this License + from time to time. Each version will be given a + distinguishing version number. Except as provided in + Section 4.3, no one other than the license steward has the + right to modify this License. + 4.2. Effect of New Versions. + You may always continue to use, distribute or otherwise + make the Covered Software available under the terms of the + version of the License under which You originally received + the Covered Software. If the Initial Developer includes a + notice in the Original Software prohibiting it from being + distributed or otherwise made available under any + subsequent version of the License, You must distribute and + make the Covered Software available under the terms of the + version of the License under which You originally received + the Covered Software. Otherwise, You may also choose to + use, distribute or otherwise make the Covered Software + available under the terms of any subsequent version of the + License published by the license steward. + 4.3. Modified Versions. + When You are an Initial Developer and You want to create a + new license for Your Original Software, You may create and + use a modified version of this License if You: (a) rename + the license and remove any references to the name of the + license steward (except to note that the license differs + from this License); and (b) otherwise make it clear that + the license contains terms which differ from this License. + 5. DISCLAIMER OF WARRANTY. + COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" + BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED + SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR + PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND + PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY + COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE + INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF + ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF + WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS + DISCLAIMER. + 6. TERMINATION. + 6.1. This License and the rights granted hereunder will + terminate automatically if You fail to comply with terms + herein and fail to cure such breach within 30 days of + becoming aware of the breach. Provisions which, by their + nature, must remain in effect beyond the termination of + this License shall survive. + 6.2. If You assert a patent infringement claim (excluding + declaratory judgment actions) against Initial Developer or + a Contributor (the Initial Developer or Contributor against + whom You assert such claim is referred to as "Participant") + alleging that the Participant Software (meaning the + Contributor Version where the Participant is a Contributor + or the Original Software where the Participant is the + Initial Developer) directly or indirectly infringes any + patent, then any and all rights granted directly or + indirectly to You by such Participant, the Initial + Developer (if the Initial Developer is not the Participant) + and all Contributors under Sections 2.1 and/or 2.2 of this + License shall, upon 60 days notice from Participant + terminate prospectively and automatically at the expiration + of such 60 day notice period, unless if within such 60 day + period You withdraw Your claim with respect to the + Participant Software against such Participant either + unilaterally or pursuant to a written agreement with + Participant. + 6.3. In the event of termination under Sections 6.1 or 6.2 + above, all end user licenses that have been validly granted + by You or any distributor hereunder prior to termination + (excluding licenses granted to You by any distributor) + shall survive termination. + 7. LIMITATION OF LIABILITY. + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE + INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF + COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE + LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK + STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL + INJURY RESULTING FROM SUCH PARTY�S NEGLIGENCE TO THE EXTENT + APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO + NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR + CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT + APPLY TO YOU. + 8. U.S. GOVERNMENT END USERS. + The Covered Software is a "commercial item, as that term is + defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial + computer software (as that term is defined at 48 C.F.R. � + 252.227-7014(a)(1)) and "commercial computer software + documentation" as such terms are used in 48 C.F.R. 12.212 (Sept. + 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 + through 227.7202-4 (June 1995), all U.S. Government End Users + acquire Covered Software with only those rights set forth herein. + This U.S. Government Rights clause is in lieu of, and supersedes, + any other FAR, DFAR, or other clause or provision that addresses + Government rights in computer software under this License. + 9. MISCELLANEOUS. + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the + extent necessary to make it enforceable. This License shall be + governed by the law of the jurisdiction specified in a notice + contained within the Original Software (except to the extent + applicable law, if any, provides otherwise), excluding such + jurisdiction�s conflict-of-law provisions. Any litigation + relating to this License shall be subject to the jurisdiction of + the courts located in the jurisdiction and venue specified in a + notice contained within the Original Software, with the losing + party responsible for costs, including, without limitation, court + costs and reasonable attorneys� fees and expenses. The + application of the United Nations Convention on Contracts for the + International Sale of Goods is expressly excluded. Any law or + regulation which provides that the language of a contract shall + be construed against the drafter shall not apply to this License. + You agree that You alone are responsible for compliance with the + United States export administration regulations (and the export + control laws and regulation of any other countries) when You use, + distribute or otherwise make available any Covered Software. + 10. RESPONSIBILITY FOR CLAIMS. + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or + indirectly, out of its utilization of rights under this License + and You agree to work with Initial Developer and Contributors to + distribute such responsibility on an equitable basis. Nothing + herein is intended or shall be deemed to constitute any admission + of liability. +===================================================== + + + +===================================================== + +ANTLR 3 License + +[The BSD License] +Copyright (c) 2003-2006, Terence Parr +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the author nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================== + + +===================================================== +JDOM JAR LICENSE + +$Id$ + +Copyright (C) 2000-2004 Jason Hunter & Brett McLaughlin. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright +notice, this list of conditions, and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions, and the disclaimer that follows +these conditions in the documentation and/or other materials +provided with the distribution. + +3. The name "JDOM" must not be used to endorse or promote products +derived from this software without prior written permission. For +written permission, please contact . + +4. Products derived from this software may not be called "JDOM", nor +may "JDOM" appear in their name, without prior written permission +from the JDOM Project Management . + +In addition, we request (but do not require) that you include in the +end-user documentation provided with the redistribution and/or in the +software itself an acknowledgement equivalent to the following: +"This product includes software developed by the + JDOM Project (http://www.jdom.org/)." +Alternatively, the acknowledgment may be graphical using the logos +available at http://www.jdom.org/images/logos. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +This software consists of voluntary contributions made by many +individuals on behalf of the JDOM Project and was originally +created by Jason Hunter and +Brett McLaughlin . For more information +on the JDOM Project, please see . + +===================================================== + + +===================================================== + +jMock Project License + +Copyright (c) 2000-2003, jMock.org +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. Redistributions in binary form +must reproduce the above copyright notice, this list of conditions and the +following disclaimer in the documentation and/or other materials provided with +the distribution. + +Neither the name of jMock nor the names of its contributors may be used to +endorse or promote products derived from this software without specific prior +written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================== + + +===================================================== + +JSTL License + +JavaServer Pages(TM) Standard Tag Library (JSTL) Specification 1.1 Maintenance +Release, Download +In order to obtain JavaServer Pages(TM) Standard Tag Library (JSTL) +Specification 1.1 Maintenance Release you must agree to the software +license below: + +SUN MICROSYSTEMS, INC. IS WILLING TO LICENSE THIS +SPECIFICATION TO YOU ONLY UPON THE CONDITION THAT YOU +ACCEPT ALL OF THE TERMS CONTAINED IN THIS LICENSE AGREEMENT +("AGREEMENT"). PLEASE READ THE TERMS AND CONDITIONS OF THIS +LICENSE CAREFULLY. BY DOWNLOADING THIS SPECIFICATION, YOU +ACCEPT THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT. +IF YOU ARE NOT WILLING TO BE BOUND BY ITS TERMS, SELECT THE +"DECLINE" BUTTON AT THE BOTTOM OF THIS PAGE AND THE +DOWNLOADING PROCESS WILL NOT CONTINUE. + +JavaServer Pages(TM) Standard Tag Library (JSTL) +Specification ("Specification") Version: 1.1 Status: FCS, +Maintenance Release Release: November 24, 2003 + +Copyright 2003 Sun Microsystems, Inc. 4150 Network Circle, +Santa Clara, California 95054, U.S.A All rights reserved. + +NOTICE; LIMITED LICENSE GRANTS Sun Microsystems, Inc. +("Sun") hereby grants you a fully-paid, non-exclusive, +non-transferable, worldwide, limited license (without the +right to sublicense), under the Sun's applicable +intellectual property rights to view, download, use and +reproduce the Specification only for the purpose of +internal evaluation, which shall be understood to include +developing applications intended to run on an +implementation of the Specification provided that such +applications do not themselves implement any portion(s) of +the Specification. Sun also grants you a perpetual, +non-exclusive, worldwide, fully paid-up, royalty free, +limited license (without the right to sublicense) under any +applicable copyrights or patent rights it may have in the +Specification to create and/or distribute an Independent +Implementation of the Specification that: (i) fully +implements the Spec(s) including all its required +interfaces and functionality; (ii) does not modify, subset, +superset or otherwise extend the Licensor Name Space, or +include any public or protected packages, classes, Java +interfaces, fields or methods within the Licensor Name +Space other than those required/authorized by the +Specification or Specifications being implemented; and +(iii) passes the TCK (including satisfying the requirements +of the applicable TCK Users Guide) for such Specification. +The foregoing license is expressly conditioned on your not +acting outside its scope. No license is granted hereunder +for any other purpose. You need not include limitations +(i)-(iii) from the previous paragraph or any other +particular "pass through" requirements in any license You +grant concerning the use of your Independent Implementation +or products derived from it. However, except with respect +to implementations of the Specification (and products +derived from them) that satisfy limitations (i)-(iii) from +the previous paragraph, You may neither: (a) grant or +otherwise pass through to your licensees any licenses under +Sun's applicable intellectual property rights; nor (b) +authorize your licensees to make any claims concerning +their implementation's compliance with the Spec in +question. + +For the purposes of this Agreement: "Independent +Implementation" shall mean an implementation of the +Specification that neither derives from any of Sun's source +code or binary code materials nor, except with an +appropriate and separate license from Sun, includes any of +Sun's source code or binary code materials; and "Licensor +Name Space" shall mean the public class or interface +declarations whose names begin with "java", "javax", +"com.sun" or their equivalents in any subsequent naming +convention adopted by Sun through the Java Community +Process, or any recognized successors or replacements +thereof. + +This Agreement will terminate immediately without notice +from Sun if you fail to comply with any material provision +of or act outside the scope of the licenses granted above. + +TRADEMARKS No right, title, or interest in or to any +trademarks, service marks, or trade names of Sun or Sun's +licensors is granted hereunder. Sun, Sun Microsystems, the +Sun logo, Java, the Java Coffee Cup logo, J2EE, and +JavaServer Pages are trademarks or registered trademarks of +Sun Microsystems, Inc. in the U.S. and other countries. + +DISCLAIMER OF WARRANTIES THE SPECIFICATION IS PROVIDED "AS +IS". SUN MAKES NO REPRESENTATIONS OR WARRANTIES, EITHER +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE, OR NON-INFRINGEMENT, THAT THE CONTENTS OF THE +SPECIFICATION ARE SUITABLE FOR ANY PURPOSE OR THAT ANY +PRACTICE OR IMPLEMENTATION OF SUCH CONTENTS WILL NOT +INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADE SECRETS +OR OTHER RIGHTS. This document does not represent any +commitment to release or implement any portion of the +Specification in any product. THE SPECIFICATION COULD +INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. +CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION THEREIN; +THESE CHANGES WILL BE INCORPORATED INTO NEW VERSIONS OF THE +SPECIFICATION, IF ANY. SUN MAY MAKE IMPROVEMENTS AND/OR +CHANGES TO THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED +IN THE SPECIFICATION AT ANY TIME. Any use of such changes +in the Specification will be governed by the then-current +license for the applicable version of the Specification. + +LIMITATION OF LIABILITY TO THE EXTENT NOT PROHIBITED BY +LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR +ANY DAMAGES, INCLUDING WITHOUT LIMITATION, LOST REVENUE, +PROFITS OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, +INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND +REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR +RELATED TO ANY FURNISHING, PRACTICING, MODIFYING OR ANY USE +OF THE SPECIFICATION, EVEN IF SUN AND/OR ITS LICENSORS HAVE +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You will +indemnify, hold harmless, and defend Sun and its licensors +from any claims arising or resulting from: (i) your use of +the Specification; (ii) the use or distribution of your +Java application, applet and/or clean room implementation; +and/or (iii) any claims that later versions or releases of +any Specification furnished to you are incompatible with +the Specification provided to you under this license. + +RESTRICTED RIGHTS LEGEND U.S. Government: If this +Specification is being acquired by or on behalf of the U.S. +Government or by a U.S. Government prime contractor or +subcontractor (at any tier), then the Government's rights +in the Specification and accompanying documentation shall +be only as set forth in this license; this is in accordance +with 48 C.F.R. 227.7201 through 227.7202-4 (for Department +of Defense (DoD) acquisitions) and with 48 C.F.R. 2.101 and +12.212 (for non-DoD acquisitions). + +REPORT You may wish to report any ambiguities, +inconsistencies or inaccuracies you may find in connection +with your use of the Specification ("Feedback"). To the +extent that you provide Sun with any Feedback, you hereby: +(i) agree that such Feedback is provided on a +non-proprietary and non-confidential basis, and (ii) grant +Sun a perpetual, non-exclusive, worldwide, fully paid-up, +irrevocable license, with the right to sublicense through +multiple levels of sublicensees, to incorporate, disclose, +and use without limitation the Feedback for any purpose +related to the Specification and future versions, +implementations, and test suites thereof. + +===================================================== + + + +===================================================== + +ODMG 2.0 ODL Metadata and OML Interfaces for Java (JDK 1.2) + +Copyright (c) 1999 E. Wray Johnson. All rights reserved.Developed for use and +distribution by the Object Data Management Group (ODMG).Please contact the +author at ejohnson@carolina.rr.com for issues pertaining to the use of this +software. Do not contact the ODMG about any questions or issues that may arise +regarding the use of this software. + +These interfaces were developed from the specifications in the Object Database +Standard: ODMG 2.0book. Please refer to the book for a complete description of +the interfaces and their intended use.You can obtain the book through a +bookstore or directly from the publishers.Every effort has been made by the +author to adhere strictly to the specification, however common Java naming +conventions were substituted for consistency and clarity for Java developers. +This software is currently being upgraded to adhere to the ODMG 3.0 standard, +so please check this site for future updates. + + +LICENSE AGREEMENT +Redistribution of this software is permitted provided that the following +conditions are met: + +1. Redistributions of source or binary code formats must retain the above +copyright notice. +2. Redistribution in any product and all advertising materials mentioning +features or use of this software must display the following acknowledgment: +"This product includes +copyrighted software developed by E. Wray Johnson for use and distribution by +the Object Data Management Group (http://www.odmg.org/)." + +NO-NONSENSE DISCLAIMER +THIS SOFTWARE IS FREE AND PROVIDED "AS-IS" BY THE AUTHOR E. WRAY JOHNSON WHO +ASSUMES LIABILITY TO THE EXTENT OF THE AMOUNT THAT IS HEREBY BEING CHARGED FOR +THE SOFTWARE. + +===================================================== + + +===================================================== + + +Common Public License Version 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC +LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM +CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial code and +documentation distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + + i) changes to the Program, and + + ii) additions to the Program; + + where such changes and/or additions to the Program originate from and are +distributed by that particular Contributor. A Contribution 'originates' from a +Contributor if it was added to the Program by such Contributor itself or anyone +acting on such Contributor's behalf. Contributions do not include additions to +the Program which: (i) are separate modules of software distributed in +conjunction with the Program under their own license agreement, and (ii) are not +derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor which are +necessarily infringed by the use or sale of its Contribution alone or when +combined with the Program. + +"Program" means the Contributions distributed in accordance with this Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, +including all Contributors. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free copyright license to +reproduce, prepare derivative works of, publicly display, publicly perform, +distribute and sublicense the Contribution of such Contributor, if any, and such +derivative works, in source code and object code form. + + b) Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed +Patents to make, use, sell, offer to sell, import and otherwise transfer the +Contribution of such Contributor, if any, in source code and object code form. +This patent license shall apply to the combination of the Contribution and the +Program if, at the time the Contribution is added by the Contributor, such +addition of the Contribution causes such combination to be covered by the +Licensed Patents. The patent license shall not apply to any other combinations +which include the Contribution. No hardware per se is licensed hereunder. + + c) Recipient understands that although each Contributor grants the licenses +to its Contributions set forth herein, no assurances are provided by any +Contributor that the Program does not infringe the patent or other intellectual +property rights of any other entity. Each Contributor disclaims any liability to +Recipient for claims brought by any other entity based on infringement of +intellectual property rights or otherwise. As a condition to exercising the +rights and licenses granted hereunder, each Recipient hereby assumes sole +responsibility to secure any other intellectual property rights needed, if any. +For example, if a third party patent license is required to allow Recipient to +distribute the Program, it is Recipient's responsibility to acquire that license +before distributing the Program. + + d) Each Contributor represents that to its knowledge it has sufficient +copyright rights in its Contribution, if any, to grant the copyright license set +forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under its +own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + + b) its license agreement: + + i) effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title and +non-infringement, and implied warranties or conditions of merchantability and +fitness for a particular purpose; + + ii) effectively excludes on behalf of all Contributors all liability for +damages, including direct, indirect, special, incidental and consequential +damages, such as lost profits; + + iii) states that any provisions which differ from this Agreement are offered +by that Contributor alone and not by any other party; and + + iv) states that source code for the Program is available from such +Contributor, and informs licensees how to obtain it in a reasonable manner on or +through a medium customarily used for software exchange. + +When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + + b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained within the +Program. + +Each Contributor must identify itself as the originator of its Contribution, if +any, in a manner that reasonably allows subsequent Recipients to identify the +originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with +respect to end users, business partners and the like. While this license is +intended to facilitate the commercial use of the Program, the Contributor who +includes the Program in a commercial product offering should do so in a manner +which does not create potential liability for other Contributors. Therefore, if +a Contributor includes the Program in a commercial product offering, such +Contributor ("Commercial Contributor") hereby agrees to defend and indemnify +every other Contributor ("Indemnified Contributor") against any losses, damages +and costs (collectively "Losses") arising from claims, lawsuits and other legal +actions brought by a third party against the Indemnified Contributor to the +extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor to +control, and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may participate in +any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial product +offering, Product X. That Contributor is then a Commercial Contributor. If that +Commercial Contributor then makes performance claims, or offers warranties +related to Product X, those performance claims and warranties are such +Commercial Contributor's responsibility alone. Under this section, the +Commercial Contributor would have to defend claims against the other +Contributors related to those performance claims and warranties, and if a court +requires any other Contributor to pay any damages as a result, the Commercial +Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, +NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each +Recipient is solely responsible for determining the appropriateness of using and +distributing the Program and assumes all risks associated with its exercise of +rights under this Agreement, including but not limited to the risks and costs of +program errors, compliance with applicable laws, damage to or loss of data, +programs or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY +CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS +GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under applicable +law, it shall not affect the validity or enforceability of the remainder of the +terms of this Agreement, and without further action by the parties hereto, such +provision shall be reformed to the minimum extent necessary to make such +provision valid and enforceable. + +If Recipient institutes patent litigation against a Contributor with respect to +a patent applicable to software (including a cross-claim or counterclaim in a +lawsuit), then any patent licenses granted by that Contributor to such Recipient +under this Agreement shall terminate as of the date such litigation is filed. In +addition, if Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the Program +itself (excluding combinations of the Program with other software or hardware) +infringes such Recipient's patent(s), then such Recipient's rights granted under +Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to +comply with any of the material terms or conditions of this Agreement and does +not cure such failure in a reasonable period of time after becoming aware of +such noncompliance. If all Recipient's rights under this Agreement terminate, +Recipient agrees to cease use and distribution of the Program as soon as +reasonably practicable. However, Recipient's obligations under this Agreement +and any licenses granted by Recipient relating to the Program shall continue and +survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in +order to avoid inconsistency the Agreement is copyrighted and may only be +modified in the following manner. The Agreement Steward reserves the right to +publish new versions (including revisions) of this Agreement from time to time. +No one other than the Agreement Steward has the right to modify this Agreement. +IBM is the initial Agreement Steward. IBM may assign the responsibility to serve +as the Agreement Steward to a suitable separate entity. Each new version of the +Agreement will be given a distinguishing version number. The Program (including +Contributions) may always be distributed subject to the version of the Agreement +under which it was received. In addition, after a new version of the Agreement +is published, Contributor may elect to distribute the Program (including its +Contributions) under the new version. Except as expressly stated in Sections +2(a) and 2(b) above, Recipient receives no rights or licenses to the +intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the +intellectual property laws of the United States of America. No party to this +Agreement will bring a legal action under this Agreement more than one year +after the cause of action arose. Each party waives its rights to a jury trial in +any resulting litigation. + +===================================================== + +XStream License + +Copyright (c) 2003-2006, Joe Walnes +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list +of conditions and the following disclaimer. Redistributions in binary form must +reproduce the above copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided with the +distribution. + +Neither the name of XStream nor the names of its contributors may be used to +endorse or promote products derived from this software without specific prior +written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================== + + + +===================================================== + +XPP3 License + +Indiana University Extreme! Lab Software License + +Version 1.1.1 + +Copyright (c) 2002 Extreme! Lab, Indiana University. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + +3. The end-user documentation included with the redistribution, if any, + must include the following acknowledgment: + + "This product includes software developed by the Indiana University + Extreme! Lab (http://www.extreme.indiana.edu/)." + +Alternately, this acknowledgment may appear in the software itself, +if and wherever such third-party acknowledgments normally appear. + +4. The names "Indiana Univeristy" and "Indiana Univeristy Extreme! Lab" +must not be used to endorse or promote products derived from this +software without prior written permission. For written permission, +please contact http://www.extreme.indiana.edu/. + +5. Products derived from this software may not use "Indiana Univeristy" +name nor may "Indiana Univeristy" appear in their name, without prior +written permission of the Indiana University. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHORS, COPYRIGHT HOLDERS OR ITS CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================== + + + +===================================================== + +/* XML Writer license + * + * Copyright (c) 2003, Henri Yandell + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the + * following conditions are met: + * + * + Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * + Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * + Neither the name of XmlWriter nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +===================================================== + + +ANTLR LICENSE + +SOFTWARE RIGHTS + +ANTLR 1989-2005 Developed by Terence Parr +Partially supported by University of San Francisco & jGuru.com + +We reserve no legal rights to the ANTLR--it is fully in the +public domain. An individual or company may do whatever +they wish with source code distributed with ANTLR or the +code generated by ANTLR, including the incorporation of +ANTLR, or its output, into commerical software. + +We encourage users to develop software with ANTLR. However, +we do ask that credit is given to us for developing +ANTLR. By "credit", we mean that if you use ANTLR or +incorporate any source code into one of your programs +(commercial product, research project, or otherwise) that +you acknowledge this fact somewhere in the documentation, +research report, etc... If you like ANTLR and have +developed a nice tool with the output, please mention that +you developed it using ANTLR. In addition, we ask that the +headers remain intact in our source code. As long as these +guidelines are kept, we expect to continue enhancing this +system and expect to make other tools available as they are +completed. + +The primary ANTLR guy: + +Terence Parr +parrt@cs.usfca.edu +parrt@antlr.org + +======================================================== + +CASTOR-LICENSE + +Copyright 2000-2002 (C) Intalio Inc. All Rights Reserved. + +Redistribution and use of this software and associated documentation +("Software"), with or without modification, are permitted provided +that the following conditions are met: + +1. Redistributions of source code must retain copyright statements + and notices. Redistributions must also contain a copy of this + document. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. The name "ExoLab" must not be used to endorse or promote products + derived from this Software without prior written permission of + Intalio Inc. For written permission, please contact info@exolab.org. + +4. Products derived from this Software may not be called "Castor" + nor may "Castor" appear in their names without prior written + permission of Intalio Inc. Exolab, Castor and Intalio are + trademarks of Intalio Inc. + +5. Due credit should be given to the ExoLab Project + (http://www.exolab.org/). + +THIS SOFTWARE IS PROVIDED BY INTALIO AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTALIO OR ITS +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +======================================================== + +Jaxen License + + Copyright 2003-2006 The Werken Company. All Rights Reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the Jaxen Project nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +======================================================== + +Jdom License + +Copyright (C) 2000-2002 Brett McLaughlin & Jason Hunter. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the disclaimer that follows + these conditions in the documentation and/or other materials + provided with the distribution. + + 3. The name "JDOM" must not be used to endorse or promote products + derived from this software without prior written permission. For + written permission, please contact license@jdom.org. + + 4. Products derived from this software may not be called "JDOM", nor + may "JDOM" appear in their name, without prior written permission + from the JDOM Project Management (pm@jdom.org). + + In addition, we request (but do not require) that you include in the + end-user documentation provided with the redistribution and/or in the + software itself an acknowledgement equivalent to the following: + "This product includes software developed by the + JDOM Project (http://www.jdom.org/)." + Alternatively, the acknowledgment may be graphical using the logos + available at http://www.jdom.org/images/logos. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + This software consists of voluntary contributions made by many + individuals on behalf of the JDOM Project and was originally + created by Brett McLaughlin and + Jason Hunter . For more information on the + JDOM Project, please see . + + ======================================================== + + Reload License + +RELOAD Tools and Libraries + +Copyright (c) 2002-2004 Oleg Liber, Bill Olivier, Phillip Beauvoir + +This licence covers: + +The Reload "jdom" library +The Reload "diva" library +The Reload "dweezil" library +The Reload "jdom" library +The Reload "moonunit" library +The Reload "xindice" library +The Reload Editor +The Reload SCORM Player +The Reload Schema Viewer Eclipse Plugin + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Project Management Contact: + +Oleg Liber +Bolton Institute of Higher Education +Deane Road +Bolton BL3 5AB +UK + +e-mail: o.liber@bolton.ac.uk + + +Technical Contact: + +Phillip Beauvoir +Bolton Institute of Higher Education +Deane Road +Bolton BL3 5AB +UK + +e-mail: p.beauvoir@bolton.ac.uk + +Web: http://www.reload.ac.uk + + + ======================================================== + + Xerces License + + /* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999-2002 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Xerces" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 1999, International + * Business Machines, Inc., http://www.ibm.com. For more + * information on the Apache Software Foundation, please see + * . + */ + + ======================================================== \ No newline at end of file Index: win_installer/updater/documents/news-2.0.4.html =================================================================== diff -u --- win_installer/updater/documents/news-2.0.4.html (revision 0) +++ win_installer/updater/documents/news-2.0.4.html (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,13 @@ +

Latest News & Updates

+
    +
  • +

    Welcome to LAMS 2.0.4!

    +

    LAMS 2.0.4 is a new release with bug fixes, improvements and key new feature: Live Edit, which allows teachers to modify a lesson on-the-fly directly in Monitor.
    + + If you want to learn more about LAMS, join the LAMS Community where teachers and developers share their experiences and ideas on the usage of LAMS.
    + + Found a bug or wanted to share new features? Let us know about it. Also have a look at the LAMS Roadmap for upcoming features.
    + LAMS is currently being translated to 25 languages by more than 50 volunteers. Want to help out? +

    +
  • +
Index: win_installer/updater/documents/readme.txt =================================================================== diff -u --- win_installer/updater/documents/readme.txt (revision 0) +++ win_installer/updater/documents/readme.txt (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,71 @@ +LAMS 2.0.4 - Learning Activity Management System +---------------------------------------------- + +This is a pre-packaged copy of LAMS 2.0.4 for Windows 2000, XP, or 2003. +For the source code, please see the 'Building LAMS' wiki at + + http://wiki.lamsfoundation.org/display/lams/Building+LAMS + +for more information. + + +1. Startup and Shutdown +======================= +To use LAMS 2, first make sure it is started - use the 'Start LAMS' shortcut +in the LAMSv2 Start Menu folder if you're not sure. MySQL must be running. +For chat rooms to function, Wildfire must also be running. + +While LAMS 2 is running, you may access the login page using the 'Access +LAMS' short cut in the LAMSv2 Start Menu folder. + +To stop LAMS 2, use the 'Stop LAMS' shortcut in the LAMSv2 Start Menu +folder. + + +2. Server Configuration +======================= +For single user installations (i.e., personal use on your own desktop), please +ignore this section. + +For server deployments, you will probably want to configure the default JVM +memory settings for your server. In C:\lams\jboss-4.0.2\bin\run.bat (or +wherever you installed LAMS 2), find the line near the bottom that says + + set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m + +and adjust the minimum and maximum amount of memory allocated there. + +We also recommend increasing the -XX:MaxPermSize option if you have more than +a couple of users. e.g. + + set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -XX:MaxPermSize=128m + +For Sun JDK versions before 1.5.0_07, the default is 64m. If your Sun JDK +version is 1.5.0_07 or later, the default is 256m. + + +3. Web Resources +================ +Windows Installer Help wiki (includes download links) + + http://wiki.lamsfoundation.org/display/lamsdocs/Windows+Installer+Help + +LAMS 2 developer-oriented information + + http://wiki.lamsfoundation.org/display/lams + +LAMS 2 help documents + + http://wiki.lamsfoundation.org/display/lamsdocs + +Educational and technical forums for help and discussion + + http://www.lamscommunity.org + +LAMS 2 bug tracker + + https://bugs.lamsfoundation.org + +LAMS Foundation + + http://www.lamsfoundation.org Index: win_installer/updater/graphics/favicon.ico =================================================================== diff -u Binary files differ Index: win_installer/updater/graphics/header.bmp =================================================================== diff -u Binary files differ Index: win_installer/updater/graphics/lams2.ico =================================================================== diff -u Binary files differ Index: win_installer/updater/lib/mysql-connector-java-3.1.12-bin.jar =================================================================== diff -u Binary files differ Index: win_installer/updater/src/ant/build.xml =================================================================== diff -u --- win_installer/updater/src/ant/build.xml (revision 0) +++ win_installer/updater/src/ant/build.xml (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: win_installer/updater/src/ant/update-core-database.xml =================================================================== diff -u --- win_installer/updater/src/ant/update-core-database.xml (revision 0) +++ win_installer/updater/src/ant/update-core-database.xml (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + \ No newline at end of file Index: win_installer/updater/src/ant/update-deploy-tools.xml =================================================================== diff -u --- win_installer/updater/src/ant/update-deploy-tools.xml (revision 0) +++ win_installer/updater/src/ant/update-deploy-tools.xml (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + +------------------------------------------+ + | Generate the deployment package. | + +------------------------------------------+ + Generating deploy.xml for ${signature} + + + + + + + + + + + + + + + + + + + + + + Deploy packaqe for ${signature} created. + + + + + + + Updating web.xml and MANIFEST.MF for lams-central.war, lams-monitor.war and lams-learning.war. using for custom tools + + + + + + + + + + + + + + + + + + + + + + + Updating application.xml ###2.1 SPECIFIC### + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Deploying the ${signature} Tool + + + + + + + + + Updating web.xml and MANIFEST.MF for lams-central.war, lams-monitor.war and lams-learning.war. using config from ${build.deploy}/deploy.xml + + + + + + + + + + + + + \ No newline at end of file Index: win_installer/updater/src/final.ini =================================================================== diff -u --- win_installer/updater/src/final.ini (revision 0) +++ win_installer/updater/src/final.ini (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,17 @@ +[Settings] +NumFields=2 + +[Field 1] +Type=Label +Left=19 +Top=11 +Right=197 +Bottom=30 +Text="LAMS Configuration Completed.\r\n\r\n" + +[Field 2] +Type=Label +Left=19 +Top=26 +Right=218 +Bottom=47 Index: win_installer/updater/src/includes/Functions.nsh =================================================================== diff -u --- win_installer/updater/src/includes/Functions.nsh (revision 0) +++ win_installer/updater/src/includes/Functions.nsh (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,498 @@ +!include "LogicLib.nsh" + +# http://nsis.sourceforge.net/Another_String_Replace_%28and_Slash/BackSlash_Converter%29 +# +; Push $filenamestring (e.g. 'c:\this\and\that\filename.htm') +; Push "\" +; Call StrSlash +; Pop $R0 +; ;Now $R0 contains 'c:/this/and/that/filename.htm' +Function StrSlash + Exch $R3 ; $R3 = needle ("\" or "/") + Exch + Exch $R1 ; $R1 = String to replacement in (haystack) + Push $R2 ; Replaced haystack + Push $R4 ; $R4 = not $R3 ("/" or "\") + Push $R6 + Push $R7 ; Scratch reg + StrCpy $R2 "" + StrLen $R6 $R1 + StrCpy $R4 "\" + StrCmp $R3 "/" loop + StrCpy $R4 "/" +loop: + StrCpy $R7 $R1 1 + StrCpy $R1 $R1 $R6 1 + StrCmp $R7 $R3 found + StrCpy $R2 "$R2$R7" + StrCmp $R1 "" done loop +found: + StrCpy $R2 "$R2$R4" + StrCmp $R1 "" done loop +done: + StrCpy $R3 $R2 + Pop $R7 + Pop $R6 + Pop $R4 + Pop $R2 + Pop $R1 + Exch $R3 +FunctionEnd + + +# http://nsis.sourceforge.net/StrStr +# +!define StrStr "!insertmacro StrStr" + +!macro StrStr ResultVar String SubString + Push `${String}` + Push `${SubString}` + Call StrStr + Pop `${ResultVar}` +!macroend + +Function StrStr +/*After this point: + ------------------------------------------ + $R0 = SubString (input) + $R1 = String (input) + $R2 = SubStringLen (temp) + $R3 = StrLen (temp) + $R4 = StartCharPos (temp) + $R5 = TempStr (temp)*/ + + ;Get input from user + Exch $R0 + Exch + Exch $R1 + Push $R2 + Push $R3 + Push $R4 + Push $R5 + + ;Get "String" and "SubString" length + StrLen $R2 $R0 + StrLen $R3 $R1 + ;Start "StartCharPos" counter + StrCpy $R4 0 + + ;Loop until "SubString" is found or "String" reaches its end + ${Do} + ;Remove everything before and after the searched part ("TempStr") + StrCpy $R5 $R1 $R2 $R4 + + ;Compare "TempStr" with "SubString" + ${IfThen} $R5 == $R0 ${|} ${ExitDo} ${|} + ;If not "SubString", this could be "String"'s end + ${IfThen} $R4 >= $R3 ${|} ${ExitDo} ${|} + ;If not, continue the loop + IntOp $R4 $R4 + 1 + ${Loop} + +/*After this point: + ------------------------------------------ + $R0 = ResultVar (output)*/ + + ;Remove part before "SubString" on "String" (if there has one) + StrCpy $R0 $R1 `` $R4 + + ;Return output to user + Pop $R5 + Pop $R4 + Pop $R3 + Pop $R2 + Pop $R1 + Exch $R0 +FunctionEnd + +/** +* Source - Afrow UK http://nsis.sourceforge.net/VersionCompare +* +* Compare version numbers. +* +* Syntax: +* ${VersionCompare} "[Version1]" "[Version2]" $var +* ; $var=0 Versions are equal +* ; $var=1 Version1 is newer +* ; $var=2 Version2 is newer +**/ +Function VersionCompare + !define VersionCompare `!insertmacro VersionCompareCall` + + !macro VersionCompareCall _VER1 _VER2 _RESULT + Push `${_VER1}` + Push `${_VER2}` + Call VersionCompare + Pop ${_RESULT} + !macroend + + Exch $1 + Exch + Exch $0 + Exch + Push $2 + Push $3 + Push $4 + Push $5 + Push $6 + Push $7 + + begin: + StrCpy $2 -1 + IntOp $2 $2 + 1 + StrCpy $3 $0 1 $2 + StrCmp $3 '' +2 + StrCmp $3 '.' 0 -3 + StrCpy $4 $0 $2 + IntOp $2 $2 + 1 + StrCpy $0 $0 '' $2 + + StrCpy $2 -1 + IntOp $2 $2 + 1 + StrCpy $3 $1 1 $2 + StrCmp $3 '' +2 + StrCmp $3 '.' 0 -3 + StrCpy $5 $1 $2 + IntOp $2 $2 + 1 + StrCpy $1 $1 '' $2 + + StrCmp $4$5 '' equal + + StrCpy $6 -1 + IntOp $6 $6 + 1 + StrCpy $3 $4 1 $6 + StrCmp $3 '0' -2 + StrCmp $3 '' 0 +2 + StrCpy $4 0 + + StrCpy $7 -1 + IntOp $7 $7 + 1 + StrCpy $3 $5 1 $7 + StrCmp $3 '0' -2 + StrCmp $3 '' 0 +2 + StrCpy $5 0 + + StrCmp $4 0 0 +2 + StrCmp $5 0 begin newer2 + StrCmp $5 0 newer1 + IntCmp $6 $7 0 newer1 newer2 + + StrCpy $4 '1$4' + StrCpy $5 '1$5' + IntCmp $4 $5 begin newer2 newer1 + + equal: + StrCpy $0 0 + goto end + newer1: + StrCpy $0 1 + goto end + newer2: + StrCpy $0 2 + + end: + Pop $7 + Pop $6 + Pop $5 + Pop $4 + Pop $3 + Pop $2 + Pop $1 + Exch $0 +FunctionEnd + + +;This function will search in a file for the specified string, and return some values. +/* +USAGE +Push C:\temp1.txt +Push hello + Call FileSearch +Pop $0 #Number of times found throughout +Pop $1 #Found at all? yes/no +Pop $2 #Number of lines found in + +StrCmp $1 yes 0 +2 +MessageBox MB_OK "$\"hello$\" was found in the file $0 times on $2 lines." +*/ +Function FileSearch +Exch $0 ;search for +Exch +Exch $1 ;input file +Push $2 +Push $3 +Push $4 +Push $5 +Push $6 +Push $7 +Push $8 +Push $9 +Push $R0 + FileOpen $2 $1 r + StrLen $4 $0 + StrCpy $5 0 + StrCpy $7 no + StrCpy $8 0 + StrCpy $9 0 + ClearErrors +loop_main: + FileRead $2 $3 + IfErrors done + IntOp $R0 $R0 + $9 + StrCpy $9 0 + StrCpy $5 0 +filter_top: + IntOp $5 $5 - 1 + StrCpy $6 $3 $4 $5 + StrCmp $6 "" loop_main + StrCmp $6 $0 0 filter_top + StrCpy $3 $3 $5 + StrCpy $5 0 + StrCpy $7 yes + StrCpy $9 1 + IntOp $8 $8 + 1 +Goto filter_top +done: + FileClose $2 + StrCpy $0 $8 + StrCpy $1 $7 + StrCpy $2 $R0 +Pop $R0 +Pop $9 +Pop $8 +Pop $7 +Pop $6 +Pop $5 +Pop $4 +Pop $3 +Exch $2 ;output number of lines +Exch +Exch $1 ;output yes/no +Exch 2 +Exch $0 ;output count found +FunctionEnd + +;---------------------------------------------------------------------------- +; Superseded by : GetTime function. +;---------------------------------------------------------------------------- +; Title : Get Local Time +; Short Name : GetLocalTime +; Last Changed : 22/Feb/2005 +; Code Type : Function +; Code Sub-Type : One-way Output +;---------------------------------------------------------------------------- +; Required : System plugin. +; Description : Gets the current local time of the user's computer +;---------------------------------------------------------------------------- +; Function Call : Call GetLocalTime +; +; Pop "$Variable1" +; Day. +; +; Pop "$Variable2" +; Month. +; +; Pop "$Variable3" +; Year. +; +; Pop "$Variable4" +; Day of the week name. +; +; Pop "$Variable5" +; Hour. +; +; Pop "$Variable6" +; Minute. +; +; Pop "$Variable7" +; Second. +;---------------------------------------------------------------------------- +; Author : Diego Pedroso +; Author Reg. Name : deguix +;---------------------------------------------------------------------------- + +Function GetLocalTime + + # Prepare variables + Push $0 + Push $1 + Push $2 + Push $3 + Push $4 + Push $5 + Push $6 + + # Call GetLocalTime API from Kernel32.dll + System::Call '*(&i2, &i2, &i2, &i2, &i2, &i2, &i2, &i2) i .r0' + System::Call 'kernel32::GetLocalTime(i) i(r0)' + System::Call '*$0(&i2, &i2, &i2, &i2, &i2, &i2, &i2, &i2)i \ + (.r4, .r5, .r3, .r6, .r2, .r1, .r0,)' + + # Day of week: convert to name + StrCmp $3 0 0 +3 + StrCpy $3 Sunday + Goto WeekNameEnd + StrCmp $3 1 0 +3 + StrCpy $3 Monday + Goto WeekNameEnd + StrCmp $3 2 0 +3 + StrCpy $3 Tuesday + Goto WeekNameEnd + StrCmp $3 3 0 +3 + StrCpy $3 Wednesday + Goto WeekNameEnd + StrCmp $3 4 0 +3 + StrCpy $3 Thursday + Goto WeekNameEnd + StrCmp $3 5 0 +3 + StrCpy $3 Friday + Goto WeekNameEnd + StrCmp $3 6 0 +2 + StrCpy $3 Saturday + WeekNameEnd: + + # Minute: convert to 2 digits format + IntCmp $1 9 0 0 +2 + StrCpy $1 '0$1' + + # Second: convert to 2 digits format + IntCmp $0 9 0 0 +2 + StrCpy $0 '0$0' + + # Return to user + Exch $6 + Exch + Exch $5 + Exch + Exch 2 + Exch $4 + Exch 2 + Exch 3 + Exch $3 + Exch 3 + Exch 4 + Exch $2 + Exch 4 + Exch 5 + Exch $1 + Exch 5 + Exch 6 + Exch $0 + Exch 6 + +FunctionEnd + +/* +Push hello #text to be replaced +Push blah #replace with +Push all #replace all occurrences +Push all #replace all occurrences +Push C:\temp1.bat #file to replace in +Call AdvReplaceInFile +*/ +Function AdvReplaceInFile +Exch $0 ;file to replace in +Exch +Exch $1 ;number to replace after +Exch +Exch 2 +Exch $2 ;replace and onwards +Exch 2 +Exch 3 +Exch $3 ;replace with +Exch 3 +Exch 4 +Exch $4 ;to replace +Exch 4 +Push $5 ;minus count +Push $6 ;universal +Push $7 ;end string +Push $8 ;left string +Push $9 ;right string +Push $R0 ;file1 +Push $R1 ;file2 +Push $R2 ;read +Push $R3 ;universal +Push $R4 ;count (onwards) +Push $R5 ;count (after) +Push $R6 ;temp file name + + GetTempFileName $R6 + FileOpen $R1 $0 r ;file to search in + FileOpen $R0 $R6 w ;temp file + StrLen $R3 $4 + StrCpy $R4 -1 + StrCpy $R5 -1 + +loop_read: + ClearErrors + FileRead $R1 $R2 ;read line + IfErrors exit + + StrCpy $5 0 + StrCpy $7 $R2 + +loop_filter: + IntOp $5 $5 - 1 + StrCpy $6 $7 $R3 $5 ;search + StrCmp $6 "" file_write2 + StrCmp $6 $4 0 loop_filter + +StrCpy $8 $7 $5 ;left part +IntOp $6 $5 + $R3 +IntCmp $6 0 is0 not0 +is0: +StrCpy $9 "" +Goto done +not0: +StrCpy $9 $7 "" $6 ;right part +done: +StrCpy $7 $8$3$9 ;re-join + +IntOp $R4 $R4 + 1 +StrCmp $2 all file_write1 +StrCmp $R4 $2 0 file_write2 +IntOp $R4 $R4 - 1 + +IntOp $R5 $R5 + 1 +StrCmp $1 all file_write1 +StrCmp $R5 $1 0 file_write1 +IntOp $R5 $R5 - 1 +Goto file_write2 + +file_write1: + FileWrite $R0 $7 ;write modified line +Goto loop_read + +file_write2: + FileWrite $R0 $R2 ;write unmodified line +Goto loop_read + +exit: + FileClose $R0 + FileClose $R1 + + SetDetailsPrint none + Delete $0 + Rename $R6 $0 + Delete $R6 + SetDetailsPrint both + +Pop $R6 +Pop $R5 +Pop $R4 +Pop $R3 +Pop $R2 +Pop $R1 +Pop $R0 +Pop $9 +Pop $8 +Pop $7 +Pop $6 +Pop $5 +Pop $0 +Pop $1 +Pop $2 +Pop $3 +Pop $4 +FunctionEnd Index: win_installer/updater/src/lams-update.ini =================================================================== diff -u --- win_installer/updater/src/lams-update.ini (revision 0) +++ win_installer/updater/src/lams-update.ini (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,66 @@ +[Settings] +NumFields=8 + +[Field 1] +Type=GroupBox +Left=0 +Top=0 +Right=-1 +Bottom=-4 +Text=Configure LAMS... + +[Field 2] +Type=DirRequest +Left=7 +Top=82 +Right=152 +Bottom=95 + +[Field 3] +Type=Label +Left=7 +Top=70 +Right=152 +Bottom=79 +Text=Java JDK directory... + +[Field 4] +Type=Link +Left=7 +Top=117 +Right=152 +Bottom=126 +Text=Click to get online help for these options +State=http://wiki.lamsfoundation.org/display/lamsdocs/Windows+Installer+Help#WindowsInstallerHelp-lams + +[Field 5] +Type=Label +Left=7 +Top=26 +Right=152 +Bottom=33 +Text=MySql Host... + +[Field 6] +Type=Text +Left=7 +Top=37 +Right=134 +Bottom=50 +State=localhost + +[Field 7] +Type=Text +Left=159 +Top=37 +Right=210 +Bottom=50 +State=3306 + +[Field 8] +Type=Label +Left=159 +Top=26 +Right=303 +Bottom=33 +Text=MySql Port... Index: win_installer/updater/src/lams.ini =================================================================== diff -u --- win_installer/updater/src/lams.ini (revision 0) +++ win_installer/updater/src/lams.ini (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,52 @@ +[Settings] +NumFields=6 + +[Field 1] +Type=GroupBox +Left=0 +Top=0 +Right=-1 +Bottom=-4 +Text=Configure LAMS... + +[Field 2] +Type=DirRequest +Left=7 +Top=37 +Right=152 +Bottom=50 + +[Field 3] +Type=Label +Left=7 +Top=26 +Right=152 +Bottom=35 +Text=Java JDK directory... + +[Field 4] +Type=DirRequest +Left=7 +Top=76 +Right=152 +Bottom=89 +State= +MinLen=1 +ValidateText=Please specify a directory for the content repository. + +[Field 5] +Type=Label +Left=7 +Top=65 +Right=152 +Bottom=74 +Text=Content repository directory... + +[Field 6] +Type=Link +Left=7 +Top=117 +Right=152 +Bottom=126 +Text=Click to get online help for these options +State=http://wiki.lamsfoundation.org/display/lamsdocs/Windows+Installer+Help#WindowsInstallerHelp-lams Index: win_installer/updater/src/lams2.ini =================================================================== diff -u --- win_installer/updater/src/lams2.ini (revision 0) +++ win_installer/updater/src/lams2.ini (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,107 @@ +[Settings] +NumFields=12 + +[Field 1] +Type=GroupBox +Left=0 +Top=1 +Right=299 +Bottom=137 +Text=Configure LAMS... + +[Field 2] +Type=Text +Left=8 +Top=82 +Right=130 +Bottom=94 +State=sysadmin +Flags= + +[Field 3] +Type=Label +Left=8 +Top=71 +Right=130 +Bottom=79 +Text=Admin username... + +[Field 4] +Type=Label +Left=142 +Top=71 +Right=264 +Bottom=79 +Text=Admin password... + +[Field 5] +Type=Text +Left=142 +Top=82 +Right=264 +Bottom=93 +State=sysadmin +Flags= + +[Field 6] +Type=Link +Left=8 +Top=116 +Right=135 +Bottom=126 +Text=Click to get online help for these options +State=http://wiki.lamsfoundation.org/display/lamsdocs/Windows+Installer+Help#WindowsInstallerHelp-lams2 + +[Field 7] +Type=Label +Left=8 +Top=22 +Right=127 +Bottom=30 +Text=Domain name... + +[Field 8] +Type=Text +Left=7 +Top=33 +Right=131 +Bottom=46 +State=localhost +MinLen=1 +ValidateText=Please specify your server's domain name. + +[Field 9] +Type=Text +Left=137 +Top=33 +Right=172 +Bottom=46 +State=8080 +MaxLen=5 +MinLen=1 +ValidateText=Please specify a port number. + +[Field 10] +Type=Label +Left=138 +Top=22 +Right=174 +Bottom=30 +Text=Port... + +[Field 11] +Type=Label +Left=184 +Top=22 +Right=291 +Bottom=30 +Text=Default locale... + +[Field 12] +Type=DropList +Left=183 +Top=33 +Right=290 +Bottom=131 +State=en_AU - English (Australia) +ListItems=en_AU - English (Australia)|ar_JO - Arabic (Jordan)|cy_GB - Cymraeg (Cymru)|da_DK - Dansk|de_DE - Deutsch|el_GR - Greek|es_ES - Espa�ol|fr_FR - Fran�ais|it_IT - Italiano|ko_KR - Korean|mi_NZ - Maori|no_NO - Norsk|pl_PL - Polski|pt_BR - Portugu�s (Brasil)|sv_SE - Svenska|vi_VN - Vietnamese|zh_CN - Chinese(Simplified) Index: win_installer/updater/src/lams_components.ini =================================================================== diff -u --- win_installer/updater/src/lams_components.ini (revision 0) +++ win_installer/updater/src/lams_components.ini (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,44 @@ +[Settings] +NumFields=5 + +[Field 1] +Type=Label +Left=27 +Top=20 +Right=169 +Bottom=29 +Text=Label + +[Field 2] +Type=Label +Left=27 +Top=29 +Right=169 +Bottom=38 +Text=Label + +[Field 3] +Type=Label +Left=27 +Top=39 +Right=169 +Bottom=48 +Text= + +[Field 4] +Type=Label +Left=10 +Top=2 +Right=291 +Bottom=14 +Text=LAMS 2.0.1 Full Install + +[Field 5] +;InstallOptions Editor Metadata (DO NOT EDIT): locked=true +Type=CheckBox +Left=10 +Top=70 +Right=268 +Bottom=80 +Text=Include jsMath (Optional web component for maths symbol display) +State=0 Index: win_installer/updater/src/mysql.ini =================================================================== diff -u --- win_installer/updater/src/mysql.ini (revision 0) +++ win_installer/updater/src/mysql.ini (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,152 @@ + + + + + + +[Settings] +NumFields=17 + +[Field 1] +Type=GroupBox +Left=0 +Top=0 +Right=-1 +Bottom=44 +Text=About your MySQL database... + +[Field 2] +Type=GroupBox +Left=0 +Top=48 +Right=-1 +Bottom=-4 +Text=Specify a database name and user account... + +[Field 3] +Type=DirRequest +Left=7 +Top=23 +Right=152 +Bottom=36 +ValidateText=Please specify your MySQL directory. +Text= + +[Field 4] +Type=Label +Left=7 +Top=12 +Right=129 +Bottom=21 +Text=MySQL directory... + +[Field 5] +Type=Password +Left=169 +Top=23 +Right=291 +Bottom=36 +ValidateText= + +[Field 6] +Type=Label +Left=169 +Top=12 +Right=291 +Bottom=21 +Text=Root password... + +[Field 7] +Type=Text +Left=8 +Top=70 +Right=103 +Bottom=83 +State=lams2 +ValidateText=Please choose a database name. +MinLen=1 + +[Field 8] +Type=Label +Left=8 +Top=60 +Right=77 +Bottom=69 +Text=Database name... + +[Field 9] +Type=Text +Left=8 +Top=100 +Right=103 +Bottom=113 +State=lams2 +ValidateText=Please choose a username. +MinLen=1 + +[Field 10] +Type=Text +Left=113 +Top=100 +Right=208 +Bottom=113 +State=lamsdemo +ValidateText=Please specify a password. +MinLen=1 + +[Field 11] +Type=Label +Left=8 +Top=90 +Right=86 +Bottom=99 +Text=MySQL Username... + +[Field 12] +Type=Label +Left=113 +Top=90 +Right=235 +Bottom=99 +Text=MySQL Password... + +[Field 13] +Type=Link +Left=8 +Top=121 +Right=153 +Bottom=131 +Text=Click to get online help for these options +State=http://wiki.lamsfoundation.org/display/lamsdocs/Windows+Installer+Help#WindowsInstallerHelp-mysql + +[Field 14] +Type=Text +Left=113 +Top=70 +Right=208 +Bottom=83 +State=localhost + +[Field 15] +Type=Label +Left=113 +Top=60 +Right=196 +Bottom=69 +Text=MySql host...\r\n + +[Field 16] +Type=Text +Left=219 +Top=70 +Right=256 +Bottom=83 +State=3306 + +[Field 17] +Type=Label +Left=219 +Top=60 +Right=243 +Bottom=70 +Text=Port... Index: win_installer/updater/src/sql/update_lams_configuration.sql =================================================================== diff -u --- win_installer/updater/src/sql/update_lams_configuration.sql (revision 0) +++ win_installer/updater/src/sql/update_lams_configuration.sql (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,25 @@ +update lams_configuration set config_value='@URL@' where config_key='ServerURL'; +update lams_configuration set config_value='@INSTDIR@' where config_key='LamsHome'; +update lams_configuration set config_value='@TEMPDIR@' where config_key='TempDir'; +update lams_configuration set config_value='@DUMPDIR@' where config_key='DumpDir'; +update lams_configuration set config_value='@EARDIR@' where config_key='EARDir'; +update lams_configuration set config_value='@REPOSITORYDIR@' where config_key='ContentRepositoryPath'; +update lams_configuration set config_value='@LOCALE@' where config_key='ServerLanguage'; +update lams_configuration set config_value='@LOCALE_DIRECTION@' where config_key='ServerPageDirection'; +update lams_configuration set config_value='@WILDFIRE_DOMAIN@' where config_key='XmppDomain'; +update lams_configuration set config_value='@WILDFIRE_CONFERENCE@' where config_key='XmppConference'; +update lams_configuration set config_value='@WILDFIRE_USER@' where config_key='XmppAdmin'; +update lams_configuration set config_value='@WILDFIRE_PASS@' where config_key='XmppPassword'; +update lams_configuration set config_value='@LAMS_VERSION@' where config_key='Version'; +update lams_configuration set config_value='@DICTIONARY_DATE@' where config_key='DictionaryDateCreated'; +update lams_configuration set config_value='@SERVER_VERSION@' where config_key='LearnerClientVersion' OR config_key='ServerVersionNumber' OR config_key='MonitorClientVersion' OR config_key='AuthoringClientVersion'; +update lams_user set login='@LAMS_USER@', password=sha1('@LAMS_PASS@') where user_id=1; +update lams_user set password=sha1('@LAMS_PASS@') where login='test1'; +update lams_user set password=sha1('@LAMS_PASS@') where login='test2'; +update lams_user set password=sha1('@LAMS_PASS@') where login='test3'; +update lams_user set password=sha1('@LAMS_PASS@') where login='test4'; +update lams_user set locale_id=(select locale_id from lams_supported_locale where language_iso_code=(SELECT SUBSTRING_INDEX('@LOCALE@', '_', 1)) and country_iso_code=(SELECT SUBSTRING_INDEX('@LOCALE@', '_', -1))) where user_id=1; +update lams_user set locale_id=(select locale_id from lams_supported_locale where language_iso_code=(SELECT SUBSTRING_INDEX('@LOCALE@', '_', 1)) and country_iso_code=(SELECT SUBSTRING_INDEX('@LOCALE@', '_', -1))) where login='test1'; +update lams_user set locale_id=(select locale_id from lams_supported_locale where language_iso_code=(SELECT SUBSTRING_INDEX('@LOCALE@', '_', 1)) and country_iso_code=(SELECT SUBSTRING_INDEX('@LOCALE@', '_', -1))) where login='test2'; +update lams_user set locale_id=(select locale_id from lams_supported_locale where language_iso_code=(SELECT SUBSTRING_INDEX('@LOCALE@', '_', 1)) and country_iso_code=(SELECT SUBSTRING_INDEX('@LOCALE@', '_', -1))) where login='test3'; +update lams_user set locale_id=(select locale_id from lams_supported_locale where language_iso_code=(SELECT SUBSTRING_INDEX('@LOCALE@', '_', 1)) and country_iso_code=(SELECT SUBSTRING_INDEX('@LOCALE@', '_', -1))) where login='test4'; Index: win_installer/updater/src/uninstall.ini =================================================================== diff -u --- win_installer/updater/src/uninstall.ini (revision 0) +++ win_installer/updater/src/uninstall.ini (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,19 @@ +[Settings] +NumFields=2 + +[Field 1] +Type=CheckBox +Left=17 +Top=50 +Right=239 +Bottom=60 +Text=Keep LAMS database, repository and uploaded files +State=1 + +[Field 2] +Type=GroupBox +Left=9 +Top=25 +Right=267 +Bottom=86 +Text=Do you wish to remove all LAMS files? Index: win_installer/updater/src/updater.nsi =================================================================== diff -u --- win_installer/updater/src/updater.nsi (revision 0) +++ win_installer/updater/src/updater.nsi (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,2506 @@ +/**************************************************************** + * Copyright (C) 2006 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $$Id$$ */ + +/** + * updater.nsi is actually an updater/installer/language-pack. There are 2 + * possibilites: + * 1) If LAMS 2.x is installed and this is a newer version, the updater will be + * run + + + * 2) If there is no LAMS 2.x installation, a full install will take place + * + * Builds to win_installer\build\LAMS-updater-$VERSION.exe + * You must change the $VERSION to comply with this version (Line 49 approx) + * Change the LANGUAGE_PACK_VERSION To the date you compile YYYY-MM-DD + * Change the DATE_TIME_STAMP to the same as can be found in lams_common\db\sql\insert_windows_config_data.sql + */ + +# includes +!include "TextFunc.nsh" +!include "includes\Functions.nsh" +!include "MUI.nsh" +!include "LogicLib.nsh" + +# functions from TextFunc.nsh +!insertmacro FileJoin +!insertmacro LineFind + +# constants +!define VERSION "2.1" +!define PREVIOUS_VERSION "2.0.4" +!define LANGUAGE_PACK_VERSION "2008-04-14" +!define LANGUAGE_PACK_VERSION_INT "20080414" +!define DATE_TIME_STAMP "200804141000" +!define SERVER_VERSION_NUMBER "${VERSION}.${DATE_TIME_STAMP}" +!define BASE_VERSION "2.0" +!define SOURCE_JBOSS_HOME "D:\jboss-4.0.2" ; location of jboss where lams was deployed +!define SOURCE_LAMS_EAR "${SOURCE_JBOSS_HOME}\server\default\deploy\lams.ear\" +!define SOURCE_JBOSS_LIB "${SOURCE_JBOSS_HOME}\server\default\lib" +!define REG_HEAD "Software\LAMS Foundation\LAMSv2" + +# project directories +!define BASE_DIR "..\..\" +!define BUILD_DIR "${BASE_DIR}\build\" +!define BASE_PROJECT_DIR "${BASE_DIR}\..\" +!define DOCUMENTS "..\documents" +!define GRAPHICS "..\graphics" +!define TEMPLATES "..\templates" +!define CONF "..\conf" +!define LIB "..\lib" +!define ANT "ant" +!define SQL "sql" + + +# installer settings +!define MUI_ICON "${GRAPHICS}\lams2.ico" +!define MUI_UNICON "${GRAPHICS}\lams2.ico" +Name "LAMS ${VERSION}" +;BrandingText "LAMS ${VERSION} -- built on ${__TIMESTAMP__}" +BrandingText "LAMS ${VERSION} -- built on ${__DATE__} ${__TIME__}" +OutFile "${BUILD_DIR}\LAMS-${VERSION}.exe" +InstallDir "C:\lams" +InstallDirRegKey HKLM "${REG_HEAD}" "" +LicenseForceSelection radiobuttons "I Agree" "I Do Not Agree" +InstProgressFlags smooth + + +# set warning when cancelling install +!define MUI_ABORTWARNING + +# set welcome page +!define MUI_WELCOMEPAGE_TITLE "LAMS ${VERSION} Install/Update Wizard" +!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation/update to LAMS ${VERSION}.\r\n\r\n\ + Please ensure you have a copy of MySQL 5.x installed and running, and Java JDK version 1.5.x. or 1.6.x\r\n\r\n\ + Click Next to continue." + + +# set instfiles page to wait when done +!define MUI_FINISHPAGE_NOAUTOCLOSE +!define MUI_UNFINISHPAGE_NOAUTOCLOSE + +# display finish page stuff +!define MUI_FINISHPAGE_RUN $INSTDIR\lams-start.exe +!define MUI_FINISHPAGE_RUN_TEXT "Start LAMS now" +;!define MUI_FINISHPAGE_TEXT "The LAMS Server has been successfully installed on your computer." +!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\readme.txt +!define MUI_FINISHPAGE_SHOWREADME_TEXT "Open the readme file" +!define MUI_FINISHPAGE_LINK "Visit LAMS Community" +!define MUI_FINISHPAGE_LINK_LOCATION "http://www.lamscommunity.org" + +# installer screen progression +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "${DOCUMENTS}\license.txt" +Page custom PreComponents PostComponents +!define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirectoryLeave +!define MUI_PAGE_CUSTOMFUNCTION_PRE skipPage +!insertmacro MUI_PAGE_DIRECTORY +Page custom PreLAMSConfig PostLAMSConfig +Page custom PreMySQLConfig PostMySQLConfig +Page custom PreLAMS2Config PostLAMS2Config +Page custom PreWildfireConfig PostWildfireConfig +Page custom PreFinal PostFinal +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH + +# uninstaller screens +!insertmacro MUI_UNPAGE_WELCOME +UninstPage custom un.PreUninstall un.PostUninstall +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES +!insertmacro MUI_UNPAGE_FINISH + + +# supported translations +!insertmacro MUI_LANGUAGE "English" # first language is the default language + + +# reserve files +# +ReserveFile "lams.ini" +ReserveFile "lams-update.ini" +ReserveFile "lams2.ini" +ReserveFile "mysql.ini" +ReserveFile "wildfire.ini" +ReserveFile "lams_components.ini" +ReserveFile "final.ini" +!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS +!insertmacro MUI_RESERVEFILE_LANGDLL + +# variables +Var MYSQL_DIR ; path to user's mysql directory +Var MYSQL_ROOT_PASS ; root pass for mysql +Var MYSQL_HOST ; ip address for mysql +Var MYSQL_PORT ; mysql port +Var DB_NAME ; db name for lams +Var DB_USER ; db user for lams +Var DB_PASS ; db pass for lams +Var JDK_DIR ; path to user's JDK directory +Var LAMS_DOMAIN ; server URL for lams +Var LAMS_PORT ; PORT for lams usually 8080 +Var LAMS_LOCALE ; default language locale on startup +Var LAMS_REPOSITORY ; path to repository on user's box +Var LAMS_USER ; user name for lams system administrater +Var LAMS_PASS ; password for lams system administrater +Var WILDFIRE_DOMAIN ; wildfire URL +Var WILDFIRE_USER ; wildfire username +Var WILDFIRE_PASS ; wildfie password +Var WINTEMP ; temp dir +Var RETAIN_DIR ; path to directory to retain files on uninstall +Var RETAIN_FILES ; bool value to devide whether to retain files +Var IS_UPDATE ; bool value to determine whether this is an update +Var INCLUDE_JSMATH ; bool value to determine whether to include JBOSS +Var TOOL_SIG ; tool signature used for tool deployer +Var TIMESTAMP ; timestamp +Var BACKUP ; bool value to determine whether the updater will backup +Var OLD_LANG_VERSION ; int to that gets the old language version from the regestry + + + +# installer sections +SectionGroup "LAMS ${VERSION} Update (Requires LAMS 2.0)" update + + Section "!lamsCore" lamsCore + ${if} $IS_UPDATE == "1" + Detailprint "Installing LAMS ${VERSION} core" + + ; Backing up existing lams installation + call backupLams + + ;ReadRegStr $MYSQL_HOST HKLM "${REG_HEAD}" "mysql_host" + ; TODO Change after 2.1, get the port from the registry instead or hard coding it + ;ReadRegStr $MYSQL_PORT HKLM "${REG_HEAD}" "mysql_port" + ;strcpy $MYSQL_PORT 3360 + + ;${if} $MYSQL_HOST == "" + ; strcpy $MYSQL_HOST "localhost" + ;${endif} + + + ; removing temporary jboss files + clearerrors + Detailprint "Removing $INSTDIR\jboss-4.0.2\server\default\tmp " + rmdir /r "$INSTDIR\jboss-4.0.2\server\default\tmp" + Detailprint "Removing $INSTDIR\jboss-4.0.2\server\default\work\jboss.web\localhost" + rmdir /r "$INSTDIR\jboss-4.0.2\server\default\work\jboss.web\localhost" + iferrors error continue + error: + MessageBox MB_OKCANCEL|MB_ICONQUESTION "Could not remove all of LAMS temporary files. Check all other programs are closed and LAMS is not running $\r$\n$\r$\n If you have just shutdown LAMS then LAMS may still be shutting down - please cancel the installation and then wait for a minute and try to run the installer again. If this problem reoccurs, please delete the following directories manually:$\r$\n$INSTDIR\jboss-4.0.2\server\default\work\jboss.web\localhost $\r$\n$INSTDIR\jboss-4.0.2\server\default\tmp $\r$\n$\r$\nClick ok to continue or cancel to stop installation" IDOK continue IDCANCEL cancel + cancel: + Abort + continue: + + ; setting up ant + call setupant + + ; Updating the the core lams jars/wars + call updateCoreJarsWars + + ; Updating lams-central.war + call updateLamsCentral + + ; Updating lams-www.war + call updateLamswww + + ; Updating the database to support version + call updateCoreDatabase + ${endif} + SectionEnd + + Section "!lamsTools" lamsTools + + ${if} $IS_UPDATE == "1" + Detailprint "Installing LAMS ${VERSION} tools" + + ; Generating the deploy.xml of the tools to support this version + ; Then Calls deploy tools + call createAndDeployTools + + ; Call specific update method for this version + ;call update203Specific + call update21Specific + + ;updates tool contexts for non-default tools + call insertCustomToolContexts + + + ; get the language files locations specific to this server from the database + ; for combined activities eg forum and scribe + ; unpack to $INSTDIR\library\llidx + call copyllid + + # changing the instdir back to the original inst dir + ReadRegStr $INSTDIR HKLM "${REG_HEAD}" "dir_inst" + + Call WriteRegEntries + + SetOutPath $INSTDIR + File /a "${BUILD_DIR}\lams-start.exe" + File /a "${BUILD_DIR}\lams-stop.exe" + File /a "${BUILD_DIR}\lams-backup.exe" + File /a "${BUILD_DIR}\lams-restore.exe" + File /a "${DOCUMENTS}\license.txt" + File /a "${DOCUMENTS}\license-wrapper.txt" + File /a "${DOCUMENTS}\readme.txt" + Call SetupStartMenu + WriteUninstaller "$INSTDIR\lams-uninstall.exe" + ${endif} + SectionEnd + +SectionGroupEnd + + +SectionGroup "LAMS ${VERSION} Full Install" fullInstall + Section "JBoss 4.0.2" jboss + ${if} $IS_UPDATE == "0" + DetailPrint "Setting up JBoss 4.0.2" + SetOutPath $INSTDIR + File /a /r /x all /x minimal /x robyn /x log /x tmp /x work /x jsMath.war /x *.bak ${SOURCE_JBOSS_HOME} + ; Configuring jboss.jar + ; Copy jboss-cache.jar, jgroups.jar from server/all/lib to server/default/lib + copyfiles "$INSTDIR\jboss-4.0.2\server\all\lib\jboss-cache.jar" "$INSTDIR\jboss-4.0.2\server\default\lib" + copyfiles "$INSTDIR\jboss-4.0.2\server\all\lib\jgroups.jar" "$INSTDIR\jboss-4.0.2\server\default\lib" + ${endif} + SectionEnd + + Section "LAMS ${VERSION}" lams + ${if} $IS_UPDATE == "0" + Detailprint "Installing LAMS ${VERSION}" + + SetOutPath $INSTDIR + + ${if} $RETAIN_FILES == "1" + Createdirectory "$WINTEMP\lams" + CopyFiles /silent $INSTDIR\backup "$WINTEMP\lams" + DetailPrint "$WINTEMP\lams\backup" + ${endif} + + Call DeployConfig + Call ImportDatabase + + CreateDirectory "$INSTDIR\temp" + CreateDirectory "$INSTDIR\dump" + CreateDirectory "$LAMS_REPOSITORY" + + # Log mode is set to INFO in this log4j.xml + SetOutPath "$INSTDIR\jboss-4.0.2\server\default\conf" + File /a "${CONF}\log4j.xml" + + Call WriteRegEntries + + SetOutPath $INSTDIR + File /a "${BUILD_DIR}\lams-start.exe" + File /a "${BUILD_DIR}\lams-stop.exe" + File /a "${BUILD_DIR}\lams-backup.exe" + File /a "${BUILD_DIR}\lams-restore.exe" + File /a "${DOCUMENTS}\license.txt" + File /a "${DOCUMENTS}\license-wrapper.txt" + File /a "${DOCUMENTS}\readme.txt" + Call SetupStartMenu + + ${if} $RETAIN_FILES == "1" + Call OverWriteRetainedFiles + ${endif} + + WriteUninstaller "$INSTDIR\lams-uninstall.exe" + ${endif} + SectionEnd + + Section "Install as Service" service + ${if} $IS_UPDATE == "0" + DetailPrint "Setting up lams ${VERSION} as a service." + SetOutPath "$INSTDIR\jboss-4.0.2\bin" + File /a "${BASE_DIR}\wrapper-windows-x86-32-3.2.3\bin\wrapper.exe" + File /a "/oname=$INSTDIR\jboss-4.0.2\bin\InstallLAMS-NT.bat" "${BASE_DIR}\wrapper-windows-x86-32-3.2.3\bin\InstallTestWrapper-NT.bat" + File /a "/oname=$INSTDIR\jboss-4.0.2\bin\UninstallLAMS-NT.bat" "${BASE_DIR}\wrapper-windows-x86-32-3.2.3\bin\UninstallTestWrapper-NT.bat" + SetOutPath "$INSTDIR\jboss-4.0.2\lib" + File /a "${BASE_DIR}\wrapper-windows-x86-32-3.2.3\lib\wrapper.dll" + File /a "${BASE_DIR}\wrapper-windows-x86-32-3.2.3\lib\wrapper.jar" + CreateDirectory "$INSTDIR\jboss-4.0.2\conf" + CopyFiles "$INSTDIR\wrapper.conf" "$INSTDIR\jboss-4.0.2\conf\wrapper.conf" + CreateDirectory "$INSTDIR\jboss-4.0.2\logs" + nsExec::ExecToStack '$INSTDIR\jboss-4.0.2\bin\InstallLAMS-NT.bat' + Pop $0 + ${If} $0 == 0 + DetailPrint "LAMSv2 successfully setup as a service. ($0)" + ${Else} + DetailPrint "LAMSv2 was not setup as a service. ($0)" + MessageBox MB_OK|MB_ICONEXCLAMATION "LAMSv2 was not installed as a service. However you may start LAMS by double-clicking $INSTDIR\jboss-4.0.2\bin\run.bat." + ${EndIf} + ${endif} + SectionEnd +SectionGroupEnd + +SectionGroup "jsMath (optional)" + + Section "jsMath (expanded)" jsmathe + ${if} $INCLUDE_JSMATH == 1 + DetailPrint "Including jsMath in LAMS ${VERSION}" + SetOutPath "$TEMP" + File /a "${BASE_PROJECT_DIR}jsmath\build\lib\jsMath.war" + CreateDirectory "$INSTDIR\jboss-4.0.2\server\default\deploy\jsMath.war" + SetOutPath "$INSTDIR\jboss-4.0.2\server\default\deploy\jsMath.war" + DetailPrint "$JDK_DIR\bin\jar xvf $TEMP\jsMath.war" + DetailPrint "Expanding jsMath.war... This may take several minutes" + nsExec::ExecToStack "$JDK_DIR\bin\jar xf $TEMP\jsMath.war" + Pop $0 + Pop $1 + ${If} $0 != 0 + DetailPrint "Failed to expand jsMath.war." + DetailPrint "Error: $1" + ${EndIf} + Delete "$TEMP\jsMath.war" + ${endif} + SectionEnd +SectionGroupEnd + + +# functions +# + +Function .onInit + + # Checking to see if LAMS is installed + call checkRegistry + + ${if} $IS_UPDATE == "1" + # check if LAMS is stopped + SetOutPath $TEMP + File "${BUILD_DIR}\LocalPortScanner.class" + ReadRegStr $0 HKLM "${REG_HEAD}" "lams_port" + ReadRegStr $1 HKLM "${REG_HEAD}" "dir_jdk" + Goto checklams + + checklams: + nsExec::ExecToStack "$1\bin\java LocalPortScanner $0" + Pop $2 + ${If} $2 == 2 + MessageBox MB_YESNO|MB_ICONQUESTION "LAMS appears to be running. Stop LAMS and continue with update? (Will take a few seconds)" \ + IDYES stoplams \ + IDNO quit + ${EndIf} + Goto continue + stoplams: + nsExec::ExecToStack 'sc stop LAMSv2' + Pop $0 + Pop $1 + DetailPrint "Sent stop command to LAMS service." + # sleep for 10s to ensure that JBoss closes properly + sleep 10000 + Goto checklams + quit: + Delete "$TEMP\LocalPortScanner.class" + MessageBox MB_OK|MB_ICONSTOP "LAMS ${VERSION} update cannot continue while LAMS is running." + Abort + continue: + Delete "$TEMP\LocalPortScanner.class" + + # Reading the registry values + Detailprint "Reading existing LAMS data from registry" + call readRegistry + + + # clearing the update-logs directory + Detailprint "Removing existing update logs" + rmdir /r "$INSTDIR\update-logs" + SectionSetSize ${jboss} 0 + SectionSetSize ${lams} 0 + SectionSetSize ${service} 0 + ${else} + SectionSetSize ${lamsCore} 0 + SectionSetSize ${lamsTools} 0 + ${endif} + + + # extract custom page display config + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "lams.ini" + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "lams-update.ini" + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "lams2.ini" + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "mysql.ini" + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "wildfire.ini" + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "lams_components.ini" + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "final.ini" + + # set jsmath exploded size (assumes 4KB cluster size on destination hdd) + ;SectionSetSize ${jsmathe} 81816 + +FunctionEnd + + +################################################################################ +# USER INTERFACE CODE # +################################################################################ + +# Skips the directory page if this is an update +Function skipPage + ${if} $IS_UPDATE == "1" + Abort + ${endif} +FunctionEnd + +Function checkRegistry + # Check the current version installed (if any) + ReadRegStr $0 HKLM "${REG_HEAD}" "version" + + ${if} $0 == "" + # LAMS 2.0 is not installed, do full install + strcpy $IS_UPDATE "0" + ${else} + # LAMS is installed. Check if the current version is installed + ${VersionCompare} $0 ${VERSION} $1 + ${if} $1 == 0 + ${orif} $1 == 1 + MessageBox MB_OK|MB_ICONSTOP "You already have LAMS $0 Installed on your computer." + Abort + ${elseif} $0 == ${PREVIOUS_VERSION} + # This is the correct version to update to + strcpy $IS_UPDATE "1" + ${else} + MessageBox MB_OK|MB_ICONSTOP "Your existing version of LAMS ($0) is not compatible with this update. $\r$\n$\r$\nPlease update to LAMS-${PREVIOUS_VERSION} before running this update." + Abort + ${endif} + ${endif} +FunctionEnd + + +Function CheckJava + # check for JDK + ${If} $JDK_DIR == "" + ReadRegStr $JDK_DIR HKLM "SOFTWARE\JavaSoft\Java Development Kit\1.6" "JavaHome" + ${If} $JDK_DIR == "" + ReadRegStr $JDK_DIR HKLM "SOFTWARE\JavaSoft\Java Development Kit\1.5" "JavaHome" + ${if} $JDK_DIR == "" + MessageBox MB_OK|MB_ICONSTOP "Could not find a Java JDK 1.5 or 1.6 installation. Please enter where you have java 5 or 6 installed." + ${EndIf} + ${EndIf} + ${endif} + +FunctionEnd + +Function Checkjava2 + # check java version using given dir + nsExec::ExecToStack '$JDK_DIR\bin\javac.exe -version' + Pop $0 + Pop $1 + ${StrStr} $0 $1 "1.6" + ${If} $0 == "" + ${StrStr} $0 $1 "1.5" + ${If} $0 == "" + MessageBox MB_OK|MB_ICONEXCLAMATION "Could not find a Java 5 or Java 6 installation in the given directory. $\r$\nPlease check your Java installation and try again.$\r$\n$\r$\n$JDK_DIR" + Abort + ${EndIf} + ${EndIf} +FunctionEnd + + +Function CheckMySQL + # check mysql version is 5.0.x + Setoutpath "$TEMP\lams\" + File "${BUILD_DIR}\checkmysqlversion.class" + File "${LIB}\mysql-connector-java-3.1.12-bin.jar" + nsExec::ExecToStack '$JDK_DIR\bin\java.exe -cp ".;$TEMP\lams\mysql-connector-java-3.1.12-bin.jar" checkmysqlversion "jdbc:mysql://$MYSQL_HOST/?characterEncoding=utf8" $DB_USER $DB_PASS' + Pop $0 + Pop $1 + ${If} $0 != 0 + ${StrStr} $3 $1 "UnknownHostException" + ${if} $3 == "" + MessageBox MB_OK|MB_ICONEXCLAMATION "An error occurred whilst checking your mysql configuration $\r$\n$\r$\nError: $1" + ${else} + MessageBox MB_OK|MB_ICONEXCLAMATION "An error occurred whilst checking your mysql configuration $\r$\n$\r$\nError: Could not connect to MySql host: $MYSQL_HOST. Please check your database configurations and try again." + ${endif} + Abort + ${EndIf} + Delete "$TEMP\lams\checkmysql.class" + Delete "$TEMP\mysql-connector-java-3.1.12-bin.jar" +FunctionEnd + +Function PreComponents + ${if} $IS_UPDATE == "0" + !insertmacro MUI_INSTALLOPTIONS_WRITE "lams_components.ini" "Field 4" "Text" "LAMS ${VERSION} Full Install" + !insertmacro MUI_INSTALLOPTIONS_WRITE "lams_components.ini" "Field 1" "Text" "- JBoss 4.0.2" + !insertmacro MUI_INSTALLOPTIONS_WRITE "lams_components.ini" "Field 2" "Text" "- LAMS ${VERSION} Core" + !insertmacro MUI_INSTALLOPTIONS_WRITE "lams_components.ini" "Field 3" "Text" "- Install LAMS as a service" + !insertmacro MUI_HEADER_TEXT "LAMS ${VERSION} Components" "No installation of LAMS 2.0 was found on your computer. A full ${VERSION} installation required to run LAMS" + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "lams_components.ini" + ${else} + !insertmacro MUI_INSTALLOPTIONS_WRITE "lams_components.ini" "Field 4" "Text" "LAMS ${VERSION} Update" + !insertmacro MUI_INSTALLOPTIONS_WRITE "lams_components.ini" "Field 1" "Text" "- LAMS ${VERSION} Core" + !insertmacro MUI_INSTALLOPTIONS_WRITE "lams_components.ini" "Field 2" "Text" "- LAMS ${VERSION} Tools" + !insertmacro MUI_HEADER_TEXT "LAMS ${VERSION} Components" "Lams ${PREVIOUS_VERSION} is installed. Proceeding with update to ${VERSION}" + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "lams_components.ini" + ${endif} +FunctionEnd + +Function PostComponents + !insertmacro MUI_INSTALLOPTIONS_READ $INCLUDE_JSMATH "lams_components.ini" "Field 5" "State" + ${if} $INCLUDE_JSMATH == "1" + SectionSetSize ${jsmathe} 81816 + ${else} + SectionSetSize ${jsmathe} 0 + ${endif} + +FunctionEnd + +Function DirectoryLeave + # check for spaces in instdir + ${StrStr} $0 $INSTDIR " " + ${If} $0 != "" + MessageBox MB_OK|MB_ICONEXCLAMATION "Please choose a location without a space." + Abort + ${EndIf} + # check LAMS 1 + ReadRegStr $0 HKLM "SOFTWARE\LAMS\Server" "install_dir" + ReadRegStr $1 HKLM "SOFTWARE\LAMS\Server" "install_status" + ReadRegStr $2 HKLM "SOFTWARE\LAMS\Server" "install_version" + ${If} $1 == "successful" + MessageBox MB_OK|MB_ICONINFORMATION "If you have LAMS $2 on your system, remember not to run it at the same time as LAMS ${VERSION} (unless you know what you're doing)." + ${If} $0 == $INSTDIR + MessageBox MB_OK|MB_ICONEXCLAMATION "There appears to be a LAMS $2 installation at $INSTDIR - please chose another location." + Abort + ${EndIf} + ${EndIf} + + Strcpy $RETAIN_FILES "0" + + + IfFileExists "$INSTDIR\backup\backup.zip" backupExists end + backupExists: + ; CHECK if there are files retained from a previous uninstall + ; THEN after installation, overwrite retained files and free files from temp folder temp folder + strcpy $6 "" + MessageBox MB_YESNO|MB_ICONQUESTION "Installer has detected database, repository and uploaded files retained from a previous install, do you wish to use them?" \ + IDYES retainFiles \ + IDNO noRetain + noRetain: + MessageBox MB_OK "Files will be backed up at $INSTDIR\backup" + goto end + retainFiles: + Strcpy $WINTEMP "C:\WINDOWS\Temp" + Strcpy $RETAIN_FILES "1" + #CopyFiles $INSTDIR $WINTEMP + #MessageBox MB_OK|MB_ICONEXCLAMATION "$RETAIN_FILES \n $RETAIN_REP $\n $RETAIN_CONF $\n $RETAIN_DB" + end: +FunctionEnd + + +Function PreMySQLConfig + ${if} $IS_UPDATE == "0" + #Call CheckMySQL + # check for MySQL in registry + ReadRegStr $MYSQL_DIR HKLM "SOFTWARE\MySQL AB\MySQL Server 5.0" "Location" + ${If} $MYSQL_DIR == "" + ReadRegStr $MYSQL_DIR HKLM "SOFTWARE\MySQL AB\MySQL Server 5.1" "Location" + ${If} $MYSQL_DIR == "" + #messageBox MB_OK|MB_ICONSTOP "Could not find a MySQL installation. Please ensure you have MySQL 5.0 or 5.1 installed." + ${endif} + ${endif} + + !insertmacro MUI_INSTALLOPTIONS_WRITE "mysql.ini" "Field 3" "State" "$MYSQL_DIR" + !insertmacro MUI_HEADER_TEXT "Setting Up MySQL Database Access (2/4)" "Choose a MySQL database and user account for LAMS. If unsure, use the defaults." + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "mysql.ini" + ${else} + #Call CheckMySQL + ${endif} +FunctionEnd + +Function PostMySQLConfig + ${if} $IS_UPDATE == "0" + !insertmacro MUI_INSTALLOPTIONS_READ $MYSQL_DIR "mysql.ini" "Field 3" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $MYSQL_ROOT_PASS "ysql.ini" "Field 5" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $DB_NAME "mysql.ini" "Field 7" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $DB_USER "mysql.ini" "Field 9" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $DB_PASS "mysql.ini" "Field 10" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $MYSQL_HOST "mysql.ini" "Field 14" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $MYSQL_PORT "mysql.ini" "Field 16" "State" + + #TODO should automatically check presence of database on remote computer + ${if} $MYSQL_HOST != 'localhost' + MessageBox MB_OK|MB_ICONINFORMATION "Please ensure that you have created the $DB_NAME database on your MySQL host $MYSQL_HOST before proceeding, otherwise the installation will not work." + ${endif} + + #Call CheckMySQL + # Checking if the given database name already exists in the mysql database list + /*ifFileExists "$MYSQL_DIRdata\$DB_NAME\*.*" databaseNameExists continue1 + databaseNameExists: + MessageBox MB_OK|MB_ICONSTOP "Database $DB_NAME already exists. Please try a different database name" + quit + continue1: + ${else} + # Checking if the given database name already exists in the mysql database list + ifFileExists "$MYSQL_DIR\data\$DB_NAME\*.*" continue NoDatabaseNameExists + NoDatabaseNameExists: + MessageBox MB_OK|MB_ICONSTOP "Could not find database $DB_NAME. Please check your database settings and try again" + quit + continue: + */ + ${endif} + + # check mysql version is 5.0.x + call CheckMySQL + + # check root password, server status + /*StrLen $0 $MYSQL_ROOT_PASS + ${If} $0 == 0 + nsExec::ExecToStack '$MYSQL_DIR\bin\mysqladmin ping -u root' + ${Else} + nsExec::ExecToStack '$MYSQL_DIR\bin\mysqladmin ping -u root -p$MYSQL_ROOT_PASS' + ${EndIf} + Pop $0 + Pop $1 + # check root password is correct + ${StrStr} $2 $1 "Access denied" + ${If} $2 != "" + MessageBox MB_OK|MB_ICONEXCLAMATION "The MySQL root password appears to be incorrect - please re-enter your password." + ${if} $IS_UPDATE == "0" + Abort + ${else} + quit + ${endif} + ${EndIf} + # check mysql is running + ${StrStr} $2 $1 "mysqld is alive" + ${If} $2 == "" + MessageBox MB_OK|MB_ICONEXCLAMATION "MySQL does not appear to be running - please make sure it is running before continuing." + ${if} $IS_UPDATE == "0" + Abort + ${else} + quit + ${endif} + ${EndIf} + */ +FunctionEnd + + +Function PreLAMSConfig + Call CheckJava + ${if} $IS_UPDATE == "0" + + !insertmacro MUI_INSTALLOPTIONS_WRITE "lams.ini" "Field 2" "State" "$JDK_DIR" + !insertmacro MUI_INSTALLOPTIONS_WRITE "lams.ini" "Field 4" "State" "$INSTDIR\repository" + !insertmacro MUI_HEADER_TEXT "Setting Up LAMS (1/4)" "Configure the LAMS Server. If unsure, use the defaults." + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "lams.ini" + ${else} + !insertmacro MUI_INSTALLOPTIONS_WRITE "lams-update.ini" "Field 2" "State" "$JDK_DIR" + !insertmacro MUI_INSTALLOPTIONS_WRITE "lams-update.ini" "Field 6" "State" "$MYSQL_HOST" + !insertmacro MUI_INSTALLOPTIONS_WRITE "lams-update.ini" "Field 7" "State" "$MYSQL_PORT" + !insertmacro MUI_HEADER_TEXT "Java setup" "If you have changed your java installation since installing LAMS ${PREVIOUS_VERSION}, please enter the new details." + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "lams-update.ini" + ${endif} +FunctionEnd + + +Function PostLAMSConfig + + ${if} $IS_UPDATE == "0" + !insertmacro MUI_INSTALLOPTIONS_READ $JDK_DIR "lams.ini" "Field 2" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $LAMS_REPOSITORY "lams.ini" "Field 4" "State" + + # check java version using given dir + Call Checkjava2 + ${else} + !insertmacro MUI_INSTALLOPTIONS_READ $MYSQL_HOST "lams-update.ini" "Field 6" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $MYSQL_PORT "lams-update.ini" "Field 7" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $JDK_DIR "lams-update.ini" "Field 2" "State" + #!insertmacro MUI_INSTALLOPTIONS_READ $LAMS_REPOSITORY "lams-update.ini" "Field 4" "State" + + # check java version using given dir + Call Checkjava2 + + Setoutpath "$TEMP\lams\" + File "${BUILD_DIR}\checkmysql.class" + File "${LIB}\mysql-connector-java-3.1.12-bin.jar" + nsExec::ExecToStack '$JDK_DIR\bin\java.exe -cp ".;$TEMP\lams\mysql-connector-java-3.1.12-bin.jar" checkmysql "jdbc:mysql://$MYSQL_HOST/$DB_NAME?characterEncoding=utf8" $DB_USER $DB_PASS ${PREVIOUS_VERSION}' + Pop $0 + Pop $1 + ${If} $0 != 0 + ${StrStr} $3 $1 "UnknownHostException" + ${if} $3 == "" + MessageBox MB_OK|MB_ICONEXCLAMATION "An error occurred whilst checking your mysql configuration $\r$\n$\r$\nError: $1" + ${else} + MessageBox MB_OK|MB_ICONEXCLAMATION "An error occurred whilst checking your mysql configuration $\r$\n$\r$\nError: Could not connect to MySql host: $MYSQL_HOST. Please check your database configurations and try again." + ${endif} + Abort + ${EndIf} + + Delete "$TEMP\lams\checkmysql.class" + Delete "$TEMP\mysql-connector-java-3.1.12-bin.jar" + + ${endif} + +FunctionEnd + + +Function PreLAMS2Config + ${if} $IS_UPDATE == "0" + !insertmacro MUI_HEADER_TEXT "Setting Up LAMS (3/4)" "Configure the LAMS Server, and choose an admin username and password." + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "lams2.ini" + ${endif} +FunctionEnd + + +Function PostLAMS2Config + ${if} $IS_UPDATE == "0" + !insertmacro MUI_INSTALLOPTIONS_READ $LAMS_DOMAIN "lams2.ini" "Field 8" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $LAMS_PORT "lams2.ini" "Field 9" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $LAMS_LOCALE "lams2.ini" "Field 12" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $LAMS_USER "lams2.ini" "Field 2" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $LAMS_PASS "lams2.ini" "Field 5" "State" + ${endif} +FunctionEnd + + +Function PreWildfireConfig + ${if} $IS_UPDATE == "0" + !insertmacro MUI_HEADER_TEXT "Setting Up Wildfire Chat Server (4/4)" "Configure Wildfire, chat server for LAMS. If unsure, use the default." + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "wildfire.ini" + ${endif} +FunctionEnd + + +Function PostWildfireConfig + ${if} $IS_UPDATE == "0" + !insertmacro MUI_INSTALLOPTIONS_READ $WILDFIRE_DOMAIN "wildfire.ini" "Field 2" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $WILDFIRE_USER "wildfire.ini" "Field 5" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $WILDFIRE_PASS "wildfire.ini" "Field 7" "State" + + # check wildfire is running by checking client connection port 5222 + SetOutPath $TEMP + File "${BUILD_DIR}\LocalPortScanner.class" + nsExec::ExecToStack '$JDK_DIR\bin\java LocalPortScanner 5222' + Pop $0 + Pop $1 + ${If} $0 == 0 + MessageBox MB_OKCANCEL|MB_ICONQUESTION "Wildfire does not appear to be running - LAMS will be OK, but chat rooms will be unavailable." IDOK noWildfire IDCANCEL cancel + cancel: + Abort + noWildfire: + ${EndIf} + ${endif} +FunctionEnd + +Function PreFinal + ${if} $IS_UPDATE == "0" + !insertmacro MUI_INSTALLOPTIONS_WRITE "final.ini" "Field 2" "Text" "Click 'Install' to commence installation of LAMS ${VERSION}" + ${else} + !insertmacro MUI_INSTALLOPTIONS_WRITE "final.ini" "Field 2" "Text" "Click 'Install' to commence update to LAMS ${VERSION}" + ${endif} + !insertmacro MUI_HEADER_TEXT "LAMS ${VERSION}" "Configuration Completed" + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "final.ini" +FunctionEnd + +Function PostFinal + + Call GetLocalTime + Pop "$0" ;Variable (for day) + Pop "$1" ;Variable (for month) + Pop "$2" ;Variable (for year) + Pop "$3" ;Variable (for day of week name) + Pop "$4" ;Variable (for hour) + Pop "$5" ;Variable (for minute) + Pop "$6" ;Variable (for second) + + strlen $7 $0 + ${if} $7 == 1 + strcpy $0 "0$0" + ${endif} + + strlen $7 $1 + ${if} $7 == 1 + strcpy $1 "0$1" + ${endif} + + strlen $7 $4 + ${if} $7 == 1 + strcpy $4 "0$4" + ${endif} + + strlen $7 $5 + ${if} $7 == 1 + strcpy $1 "0$5" + ${endif} + + + strcpy $TIMESTAMP "$2$1$0$4$5" + + strcpy $BACKUP "0" + ${if} $IS_UPDATE == "1" + MessageBox MB_YESNOCANCEL|MB_ICONQUESTION "Do you wish to backup your LAMS installation? (Recommended) $\r$\nBackup dir: $INSTDIR-${PREVIOUS_VERSION}-$TIMESTAMP.bak $\r$\n$\r$\nNOTE: You must have MySql installed on this machine to do this." IDNO continue IDCANCEL cancel + # check mysql version is 5.0.x +# nsExec::ExecToStack '$MYSQL_DIR\bin\mysqladmin --version' + call CheckMySQL + /*Pop $0 + Pop $1 + ${if} $0 != 0 + MessageBox MB_OK|MB_ICONSTOP "Error checking mysql, please check that MySql is installed in the same location as written in the registry under ${REG_HEAD}" + abort + ${endif} + ${If} $1 == "" ; if mySQL install directory field is empty, do not continue + MessageBox MB_OK|MB_ICONSTOP "No MySql installation found" + abort + ${EndIf} + ${StrStr} $0 $1 "5.0" + ${If} $0 == "" ; if not 5.0.x, check 5.1.x + ${StrStr} $0 $1 "5.1" + ${If} $0 == "" + MessageBox MB_OK|MB_ICONSTOP "Your MySQL version does not appear to be compatible with LAMS (5.0.x or 5.1.x): $\r$\n$1" + MessageBox MB_OK|MB_ICONSTOP "Your MySQL directory does not appear to be valid, please enter a valid MySQL directory before continuing.$\r$\n$\r$\n$1" + ${if} $IS_UPDATE == "0" + Abort + ${else} + quit + ${endif} + ${EndIf} + ${EndIf} + */ + strcpy $BACKUP "1" + goto continue + cancel: + Abort + continue: + ${endif} + + goto done + error: + DetailPrint "Error getting system time" + MessageBox MB_OK|MB_ICONSTOP "Error getting system time $\r$\nError:$\r$\n$\r$\n$1 $\r$\n$\r$\n$0" + Abort "Error getting system time" + done: +FunctionEnd + +################################################################################ +# END USER INTERFACE CODE # +################################################################################ + + + + +################################################################################ +# CODE USED FOR UPDATER # +################################################################################ + +# Updates specific to the 2.1 release +Function update21Specific + + # Update the log4j.xml and the login-config.xml files + SetOutPath "$INSTDIR\jboss-4.0.2\server\default\conf" + File /a "${CONF}\log4j.xml" + File /a "${CONF}\login-config.xml" + + Setoutpath "$TEMP\lams\" + file "${BUILD_DIR}\Alter21Integration.class" + + strcpy $1 "jdbc:mysql://$MYSQL_HOST/$DB_NAME?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true" + ReadRegStr $2 HKLM "${REG_HEAD}" "dir_repository" + ReadRegStr $3 HKLM "${REG_HEAD}" "dir_jdk" + # execute the chat update + Detailprint '"$3\bin\java.exe" -cp "lib\mysql-connector-java-3.1.12-bin.jar;." Alter21Integration "$DB_NAME" "$DB_USER" "$DB_PASS" "$1"' + nsExec::ExecToStack '"$3\bin\java.exe" -cp "lib\mysql-connector-java-3.1.12-bin.jar;." Alter21Integration "$DB_NAME" "$DB_USER" "$DB_PASS" "$1"' + pop $0 + pop $1 + ${if} $0 != '0' + Messagebox MB_OK|MB_ICONSTOP "Error while updating Chat tool $\r$\nError: $1" + Abort + ${endif} + + clearerrors + Push "2007" #text to be replaced + Push "2008" #replace with + Push all #replace all occurrences + Push all #replace all occurrences + Push "$INSTDIR\index.html" #file to replace in + Call AdvReplaceInFile + iferrors 0 end + Detailprint "Problem updating index.html" + end: +FunctionEnd + +/* +Function update203Specific + #extract the jar + Setoutpath "$TEMP\lams\" + File "${BUILD_DIR}\UpdateLAMS202Chat.class" + File "${BASE_PROJECT_DIR}\lams_build\lib\hibernate\hibernate3.jar" + + Detailprint "Updating the Chat tool" + + + strcpy $1 "jdbc:mysql://$MYSQL_HOST/$DB_NAME?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true" + ReadRegStr $2 HKLM "${REG_HEAD}" "dir_repository" + ReadRegStr $3 HKLM "${REG_HEAD}" "dir_jdk" + # execute the chat update + Detailprint '"$3\bin\java.exe" -cp ".;hibernate3.jar;lib\mysql-connector-java-3.1.12-bin.jar;lib\commons-logging.jar" UpdateLAMS202Chat "$1" "$DB_USER" "$DB_PASS" "$2"' + nsExec::ExecToStack '"$3\bin\java.exe" -cp ".;hibernate3.jar;lib\mysql-connector-java-3.1.12-bin.jar;lib\commons-logging.jar" UpdateLAMS202Chat "$1" "$DB_USER" "$DB_PASS" "$2"' + pop $0 + pop $1 + ${if} $0 != '0' + Messagebox MB_OK|MB_ICONSTOP "Error while updating Chat tool $\r$\nError: $1" + Abort + ${endif} + + ;replacing the copyright notice on index.html + clearerrors + Push "2006" #text to be replaced + Push "2007" #replace with + Push all #replace all occurrences + Push all #replace all occurrences + Push "$INSTDIR\index.html" #file to replace in + Call AdvReplaceInFile + iferrors 0 end + Detailprint "Problem updating index.html" + end: +FunctionEnd +*/ + + +Function setupant + + # extract support files to write configuration + SetOutPath $INSTDIR + File /r "${BASE_DIR}\apache-ant-1.6.5" + + # Extract the ant scripts + SetOutPath "$TEMP\lams" + + File "${ANT}\update-deploy-tools.xml" + + # use Ant to write config to files + clearerrors + FileOpen $0 "$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat" w + IfErrors 0 +2 + goto error + FileWrite $0 "@echo off$\r$\nset JAVACMD=$JDK_DIR\bin\java$\r$\n" + FileClose $0 + ${FileJoin} "$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat" "$INSTDIR\apache-ant-1.6.5\bin\ant.bat" "" + + goto done + error: + DetailPrint "Error setting up ant" + MessageBox MB_OK|MB_ICONSTOP "Error setting up ant " + Abort "Lams configuration failed" + done: +Functionend + + +; Backs up existing lams installation +Function backupLams + ${if} $BACKUP == "1" + ${if} $MYSQL_HOST == "localhost" + clearerrors + iffileexists "$INSTDIR-${PREVIOUS_VERSION}-$TIMESTAMP.bak\*.*" backupExists continue + backupExists: + DetailPrint "Lams backup failed" + MessageBox MB_OK|MB_ICONSTOP "Lams backup failed, please delete or change the name of the backup file before continuing with the update$\r$\n$INSTDIR-${PREVIOUS_VERSION}-$TIMESTAMP.bak" + Abort "LAMS configuration failed" + continue: + + DetailPrint "Backing up lams at: $INSTDIR-${PREVIOUS_VERSION}-$TIMESTAMP.bak. This may take a few minutes" + SetDetailsPrint listonly + copyfiles /SILENT $INSTDIR $INSTDIR-${PREVIOUS_VERSION}-$TIMESTAMP.bak 86000 + SetDetailsPrint both + iferrors error1 continue1 + error1: + DetailPrint "Backup failed" + MessageBox MB_OK|MB_ICONSTOP "LAMS backup to $INSTDIR-${PREVIOUS_VERSION}-$TIMESTAMP.bak failed. Check that all other applications are closed and LAMS is not running." + Abort + continue1: + + DetailPrint 'Dumping database to: $INSTDIR-${PREVIOUS_VERSION}-$TIMESTAMP.bak' + setoutpath "$INSTDIR-${PREVIOUS_VERSION}-$TIMESTAMP.bak" + Strcpy $4 '"$MYSQL_DIR\bin\mysqldump" -r "$INSTDIR-${PREVIOUS_VERSION}-$TIMESTAMP.bak\dump.sql" $DB_NAME -u $DB_USER -p$DB_PASS' + DetailPrint $4 + nsExec::ExecToStack $4 + Pop $0 + Pop $1 + ${If} $0 == "yes" + goto error + ${EndIf} + + goto done + error: + DetailPrint "Database dump failed" + MessageBox MB_OK|MB_ICONSTOP "Database dump failed $\r$\nError:$\r$\n$\r$\n$1" + Abort "Database dump failed" + done: + ${else} + MessageBox MB_YESNO|MB_ICONQUESTION "Unable to backup LAMS. MYSQL_HOST is not set to localhost. Manual backup required. $\r$\n$\r$\nWould you like to quit the update and backup LAMS manually? If you choose 'No', the update will proceed and your existing LAMS installation will be overwritten." IDYES quit IDNO continue2 + quit: + Abort + continue2: + ${endif} + ${endif} +FunctionEnd + + +; Updating the the core lams jars/wars +; Needs lams_build/build.xml tasks assemble-ear and deploy-ear-updater to be executed first +Function updateCoreJarsWars + SetoutPath "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear" + ;File "${SOURCE_LAMS_EAR}\*.*" + File /a /r /x tmp /x lams-www.war /x META-INF /x jsMath.war /x *.bak ${SOURCE_LAMS_EAR}\* + + Setoutpath "$INSTDIR\jboss-4.0.2\server\default\lib" + File "${SOURCE_JBOSS_LIB}\lams-session.jar" + File "${SOURCE_JBOSS_LIB}\lams-valve.jar" + + createdirectory "$INSTDIR\update-logs" +FunctionEnd + +; Updating lams-central.war +Function updateLamsCentral + strcpy $0 "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-central.war" + SetoutPath $0 + File /r "${SOURCE_LAMS_EAR}\lams-central.war\*" +FunctionEnd + +; Updating lams-www.war +Function updateLamswww + SetoutPath "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\images\" + File "${SOURCE_LAMS_EAR}\lams-www.war\images\learner.logo.swf" + + SetoutPath "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\images\" + File "${SOURCE_LAMS_EAR}\lams-www.war\images\about.logo.swf" + + SetoutPath "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\images\" + File "${SOURCE_LAMS_EAR}\lams-www.war\images\monitor.logo.swf" + + SetoutPath "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\images\" + File "${SOURCE_LAMS_EAR}\lams-www.war\images\preloader.logo.swf" + + SetoutPath "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\images\" + File "${SOURCE_LAMS_EAR}\lams-www.war\images\template*.gif" + + SetoutPath "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\" + File "${SOURCE_LAMS_EAR}\lams-www.war\htmltemplates.xml" + + SetoutPath "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\WEB-INF\" + File "${SOURCE_LAMS_EAR}\lams-www.war\WEB-INF\lams.tld" + + SetoutPath "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\WEB-INF\tags\" + File "${SOURCE_LAMS_EAR}\lams-www.war\WEB-INF\tags\*" + + SetoutPath "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\" + File "${DOCUMENTS}\news-${PREVIOUS_VERSION}.html" + ;if news and news-${PREVIOUS_VERSION} are the same + + nsExec::ExecToStack 'fc $INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\news.html $INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\news-${PREVIOUS_VERSION}.html' + pop $0 + pop $1 + ${StrStr} "$3" "$1" "FC: no differences encountered" + ;if there aren't any differences output the new news.html + ${if} "$3" != "" + File "${BASE_PROJECT_DIR}\lams_www\conf\lams\news.html" + ${endif} +FunctionEnd + + +; Updating the database to support version +Function updateCoreDatabase + + # generate a sql file to update the configuration table + Createdirectory "$TEMP\lams\sql\" + ClearErrors + + + FileOpen $0 "$TEMP\lams\sql\updateConfiguration.sql" w + IfErrors 0 +3 + Detailprint "Problem opening updateConfiguration.sql to write" + goto error + FileWrite $0 "update lams_configuration set config_value='${SERVER_VERSION_NUMBER}' where config_key='LearnerClientVersion' OR config_key='ServerVersionNumber' OR config_key='MonitorClientVersion' OR config_key='AuthoringClientVersion';$\r$\n" + Filewrite $0 "update lams_configuration set config_value='${VERSION}' where config_key='Version';$\r$\n" + Filewrite $0 "update lams_configuration set config_value='${LANGUAGE_PACK_VERSION}' where config_key='DictionaryDateCreated';$\r$\n" + Fileclose $0 + IfErrors 0 +3 + Detailprint "Problem closing updateConfiguration.sql" + goto error + + + # generate a properties file + ClearErrors + FileOpen $0 $TEMP\lams\core.properties w + IfErrors 0 +3 + Detailprint "Problem opening core.properties to write" + goto error + + # convert '\' to '/' for Ant's benefit + Push $TEMP + Push "\" + Call StrSlash + Pop $2 + FileWrite $0 "temp=$2/$\r$\n" + + Push $INSTDIR + Push "\" + Call StrSlash + Pop $2 + + FileWrite $0 "instdir=$2/$\r$\n" + FileWrite $0 "db.name=$DB_NAME$\r$\n" + FileWrite $0 "db.username=$DB_USER$\r$\n" + FileWrite $0 "db.password=$DB_PASS$\r$\n" + FileWrite $0 "db.Driver=com.mysql.jdbc.Driver$\r$\n" + FileWrite $0 "db.url=jdbc:mysql://$MYSQL_HOST/$${db.name}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true$\r$\n" + FileWrite $0 "jboss.deploy=$${instdir}/jboss-4.0.2/server/default/deploy/lams.ear/$\r$\n" + + Fileclose $0 + IfErrors 0 +2 + goto error + + + # Copying the core sql update scriptes to $TEMP/lams/sql + setoutpath "$TEMP\lams\sql" + ;file "${BASE_PROJECT_DIR}\lams_common\db\sql\updatescripts\alter_${VERSION}*.sql" + ;file "${BASE_PROJECT_DIR}\lams_common\db\sql\updatescripts\alter_203*.sql" + file "${BASE_PROJECT_DIR}\lams_common\db\sql\updatescripts\alter_21*.sql" + + setoutpath "$TEMP\lams\" + file "${ANT}\update-core-database.xml" + + + # Running the ant scripts to create deploy.xml for the normal tools + strcpy $0 '"$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat" -logfile "$INSTDIR\update-logs\ant-update-core-database.log" -buildfile "$TEMP\lams\update-core-database.xml" update-core-database' + DetailPrint $0 + nsExec::ExecToStack $0 + Pop $0 ; return code, 0=success, error=fail + Pop $1 ; console output + ${if} $0 == "error" + ${orif} $0 == 1 + goto error + ${endif} + DetailPrint "Result: $1" + + push "$INSTDIR\update-logs\ant-update-core-database.log" + push "Failed" + Call FileSearch + Pop $0 #Number of times found throughout + Pop $3 #Found at all? yes/no + Pop $2 #Number of lines found in + StrCmp $3 yes 0 +2 + goto error + goto done + error: + DetailPrint "LAMS core database updates failed" + MessageBox MB_OK|MB_ICONSTOP "LAMS core database updates failed, check update logs in the installation directory for details $\r$\nError:$\r$\n$\r$\n$1" + Abort "LAMS configuration failed" + done: +FunctionEnd + +; Updating application.xml +Function updateApplicationXML + + #############THIS CODE FOR 2.1 ONLY############## + + # Running the ant scripts to update web.xmls and manifests + strcpy $0 '"$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat" -logfile "$INSTDIR\update-logs\ant-update-application-xml.log" -buildfile "$TEMP\lams\update-deploy-tools.xml" -D"prop.path=$TOOL_SIG" update-application-xml' + DetailPrint $0 + nsExec::ExecToStack $0 + Pop $0 ; return code, 0=success, error=fail + Pop $1 ; console output + ${if} $0 == "error" + ${orif} $0 == 1 + goto error + ${endif} + DetailPrint "Result: $1" + + push "$INSTDIR\update-logs\ant-update-application-xml.log" + push "FAILED" + Call FileSearch + Pop $0 #Number of times found throughout + Pop $3 #Found at all? yes/no + Pop $2 #Number of lines found in + StrCmp $3 yes 0 +2 + goto error + + goto done + error: + DetailPrint "Application.xml update failed" + MessageBox MB_OK|MB_ICONSTOP "Application.xml update failed, check update logs in the installation directory for details $\r$\nError:$\r$\n$\r$\n$1" + Abort "LAMS configuration failed" + done: + + + + + + /*iffileexists "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\ehcache-1.1.jar" fileExists continue + fileExists: + delete "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\ehcache-1.1.jar" + continue: + + # Running the ant scripts to update web.xmls and manifests + strcpy $0 '"$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat" -logfile "$INSTDIR\update-logs\ant-update-application-xml.log" -buildfile "$TEMP\lams\update-deploy-tools.xml" -D"prop.path=$TOOL_SIG" update-application-xml' + DetailPrint $0 + nsExec::ExecToStack $0 + Pop $0 ; return code, 0=success, error=fail + Pop $1 ; console output + ${if} $0 == "error" + ${orif} $0 == 1 + goto error + ${endif} + DetailPrint "Result: $1" + + push "$INSTDIR\update-logs\ant-update-application-xml.log" + push "FAILED" + Call FileSearch + Pop $0 #Number of times found throughout + Pop $3 #Found at all? yes/no + Pop $2 #Number of lines found in + StrCmp $3 yes 0 +2 + goto error + + goto done + error: + DetailPrint "Application.xml update failed" + MessageBox MB_OK|MB_ICONSTOP "Application.xml update failed, check update logs in the installation directory for details $\r$\nError:$\r$\n$\r$\n$1" + Abort "LAMS configuration failed" + done: + */ +FunctionEnd + +; Updating the deploy.xml of the tools to support this version using the tool deployer, called by create-deploy-package ant task +; Then deploys the tools using the tool deployer. Called by ant task deploy-tool +Function createAndDeployTools + + ; setting the first tool sig for properties files + strcpy $TOOL_SIG "lachat11" + + # Copying tool-specific build.property files + call copyToolBuildProperties + + # Generate the tools.properties for properties common to all tools + call generateToolProperties + + # Get the jars and wars required for each tool + call extractToolJars + + # Get the java libraries needed for the tool deployer + SetOutPath "$TEMP\lams\lib" + File "${BASE_PROJECT_DIR}\lams_build\deploy-tool\lib\*.jar" + + ; Updating application.xml + call updateApplicationXML + + DetailPrint "Result: $1" + push "$INSTDIR\update-logs\ant-explode-wars.log" + push "FAILED" + Call FileSearch + Pop $0 #Number of times found throughout + Pop $3 #Found at all? yes/no + Pop $2 #Number of lines found in + StrCmp $3 yes 0 +2 + goto error + + + # Exploding the lams-learning.war and lams-monitoring.war + strcpy $0 '$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat -logfile $INSTDIR\update-logs\ant-explode-wars.log -buildfile $TEMP\lams\update-deploy-tools.xml -Dprop.path=$TEMP\lams\$TOOL_SIG explode-wars' + DetailPrint $0 + nsExec::ExecToStack $0 + Pop $0 ; return code, 0=success, error=fail + Pop $1 ; console output + ${if} $0 == "error" + ${orif} $0 == 1 + goto error + ${endif} + DetailPrint "Result: $1" + push "$INSTDIR\update-logs\ant-explode-wars.log" + push "FAILED" + Call FileSearch + Pop $0 #Number of times found throughout + Pop $3 #Found at all? yes/no + Pop $2 #Number of lines found in + StrCmp $3 yes 0 +2 + goto error + + + # Creating all the tools, then deploying them + strcpy $TOOL_SIG "lachat11" + call runCreateDeployPackage + call deployTool + call runUpdateToolContext + + strcpy $TOOL_SIG "lafrum11" + call runCreateDeployPackage + call deployTool + call runUpdateToolContext + + strcpy $TOOL_SIG "lamc11" + call runCreateDeployPackage + call deployTool + call runUpdateToolContext + + strcpy $TOOL_SIG "laqa11" + call runCreateDeployPackage + call deployTool + call runUpdateToolContext + + strcpy $TOOL_SIG "larsrc11" + call runCreateDeployPackage + call deployTool + call runUpdateToolContext + + strcpy $TOOL_SIG "lanb11" + call runCreateDeployPackage + call deployTool + call runUpdateToolContext + + strcpy $TOOL_SIG "lantbk" + call runCreateDeployPackage + call deployTool + call runUpdateToolContext + + strcpy $TOOL_SIG "lasbmt11" + call runCreateDeployPackage + call deployTool + call runUpdateToolContext + + strcpy $TOOL_SIG "lascrb11" + call runCreateDeployPackage + call deployTool + call runUpdateToolContext + + strcpy $TOOL_SIG "lasurv11" + call runCreateDeployPackage + call deployTool + call runUpdateToolContext + + strcpy $TOOL_SIG "lavote11" + call runCreateDeployPackage + call deployTool + call runUpdateToolContext + + strcpy $0 '$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat -logfile $INSTDIR\update-logs\ant-compress-wars.log -buildfile $TEMP\lams\update-deploy-tools.xml -Dprop.path=$TEMP\lams\$TOOL_SIG compress-wars' + DetailPrint $0 + nsExec::ExecToStack $0 + Pop $0 ; return code, 0=success, error=fail + Pop $1 ; console output + ${if} $0 == "error" + ${orif} $0 == 1 + goto error + ${endif} + DetailPrint "Result: $1" + push "$INSTDIR\update-logs\ant-compress-wars.log" + push "FAILED" + Call FileSearch + Pop $0 #Number of times found throughout + Pop $3 #Found at all? yes/no + Pop $2 #Number of lines found in + StrCmp $3 yes 0 +2 + goto error + + + goto done + error: + DetailPrint "Problem compressing/expanding lams-monitoring.war and lams-learning.war" + MessageBox MB_OK|MB_ICONSTOP "Problem compressing/expanding lams-monitoring.war and lams-learning.war $\r$\nError:$\r$\n$\r$\n$1" + Abort "LAMS configuration failed" + done: + +FunctionEnd + +# Running the ant scripts to create deploy.xml for the normal tools +# Tool created depends on the value of $TOOL_SIG +Function runCreateDeployPackage + # Running the ant scripts to create deploy.xml for the normal tools + strcpy $0 '$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat -logfile $INSTDIR\update-logs\ant-create-deploy-package-$TOOL_SIG.log -buildfile $TEMP\lams\update-deploy-tools.xml -Dprop.path=$TEMP\lams\$TOOL_SIG create-deploy-package' + DetailPrint $0 + nsExec::ExecToStack $0 + Pop $0 ; return code, 0=success, error=fail + Pop $1 ; console output + ${if} $0 == "error" + ${orif} $0 == 1 + goto error + ${endif} + DetailPrint "Result: $1" + push "$INSTDIR\update-logs\ant-create-deploy-package-$TOOL_SIG.log" + push "FAILED" + Call FileSearch + Pop $0 #Number of times found throughout + Pop $3 #Found at all? yes/no + Pop $2 #Number of lines found in + StrCmp $3 yes 0 +2 + goto error + + + goto done + error: + DetailPrint "Ant create-tools-package failed, check update-logs for details" + MessageBox MB_OK|MB_ICONSTOP "Ant create-tools-package failed, check update-logs for details$\r$\nError:$\r$\n$\r$\n$1" + Abort "LAMS configuration failed." + done: +FunctionEnd + +# Running the ant scripts to create update the tool context paths +# Tool created depends on the value of $TOOL_SIG +Function runUpdateToolContext + # Running the ant scripts to create deploy.xml for the normal tools + strcpy $0 '$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat -logfile $INSTDIR\update-logs\ant-update-tool-context-$TOOL_SIG.log -buildfile $TEMP\lams\update-deploy-tools.xml -Dprop.path=$TEMP\lams\$TOOL_SIG update-tool-context' + DetailPrint $0 + nsExec::ExecToStack $0 + Pop $0 ; return code, 0=success, error=fail + Pop $1 ; console output + ${if} $0 == "error" + ${orif} $0 == 1 + goto error + ${endif} + DetailPrint "Result: $1" + push "$INSTDIR\update-logs\ant-update-tool-context-$TOOL_SIG.log" + push "FAILED" + Call FileSearch + Pop $0 #Number of times found throughout + Pop $3 #Found at all? yes/no + Pop $2 #Number of lines found in + StrCmp $3 yes 0 +2 + goto error + + goto done + error: + DetailPrint "Ant update-tool-context failed, check update-logs for details" + MessageBox MB_OK|MB_ICONSTOP "Ant update-tool-context failed, check update-logs for details$\r$\nError:$\r$\n$\r$\n$1" + Abort "LAMS configuration failed." + done: +FunctionEnd + +# Deploying the updated tools +Function deployTool + # Running the ant scripts to create deploy.xml for the normal tools + strcpy $0 '$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat -logfile $INSTDIR\update-logs\ant-deploy-tool-$TOOL_SIG.log -buildfile $TEMP\lams\update-deploy-tools.xml -Dprop.path=$TEMP\lams\$TOOL_SIG deploy-tool' + DetailPrint $0 + nsExec::ExecToStack $0 + Pop $0 ; return code, 0=success, error=fail + Pop $1 ; console output + DetailPrint "Result: $1" + ${if} $0 == "fail" + ${orif} $0 == 1 + goto error + ${endif} + push "$INSTDIR\update-logs\ant-deploy-tool-$TOOL_SIG.log" + push "FAILED" + Call FileSearch + Pop $0 #Number of times found throughout + Pop $3 #Found at all? yes/no + Pop $2 #Number of lines found in + StrCmp $3 yes 0 +2 + goto error + + goto done + error: + DetailPrint "Ant deploy-tool failed, check update-logs for details" + MessageBox MB_OK|MB_ICONSTOP "Ant deploy-tool failed, check update-logs for details$\r$\nError:$\r$\n$\r$\n$1" + Abort "LAMS configuration failed." + done: +FunctionEnd + + +# generates a properties file for all tools +Function generateToolProperties + + # generate a properties file + ClearErrors + FileOpen $0 $TEMP\lams\tools.properties w + IfErrors 0 +2 + goto error + + # convert '\' to '/' for Ant's benefit + Push $TEMP + Push "\" + Call StrSlash + Pop $2 + FileWrite $0 "temp=$2/$\r$\n" + + Push $INSTDIR + Push "\" + Call StrSlash + Pop $2 + + FileWrite $0 "instdir=$2/$\r$\n" + FileWrite $0 "basetooldir=$${temp}/lams/$${signature}$\r$\n" + FileWrite $0 "build=$${basetooldir}/build/$\r$\n" + FileWrite $0 "build.deploy=$${build}/deploy/$\r$\n" + FileWrite $0 "build.lib=$${build}/deploy/lib/$\r$\n" + FileWrite $0 "db.scripts=$${build.deploy}/sql/$\r$\n" + FileWrite $0 "db.name=$DB_NAME$\r$\n" + FileWrite $0 "db.username=$DB_USER$\r$\n" + FileWrite $0 "db.password=$DB_PASS$\r$\n" + FileWrite $0 "db.Driver=com.mysql.jdbc.Driver$\r$\n" + FileWrite $0 "db.url=jdbc:mysql://$MYSQL_HOST/$${db.name}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true$\r$\n" + FileWrite $0 "conf.language.dir=$${build.deploy}/language/$\r$\n" + FileWrite $0 "jboss.deploy=$${instdir}/jboss-4.0.2/server/default/deploy/lams.ear/$\r$\n" + FileWrite $0 "deploy.tool.dir=$${temp}/lams/$\r$\n" + FileWrite $0 "toolContext=/lams/tool/$${signature}$\r$\n" + FileWrite $0 "product=lams-tool-$${signature}$\r$\n" + + goto done + error: + DetailPrint "File writing to $TEMP\lams\tools.properties failed." + MessageBox MB_OK|MB_ICONSTOP "LAMS configuration failed. File write error to $TEMP\lams\tools.properties.$\r$\nError:$\r$\n$\r$\n$1" + Abort "LAMS configuration failed." + done: + +FunctionEnd + +# Copying the tool-specific build.property files +Function copyToolBuildProperties + + SetoutPath "$TEMP\lams\lachat11" + File "${BASE_PROJECT_DIR}\lams_tool_chat\build.properties" + + SetoutPath "$TEMP\lams\lafrum11" + File "${BASE_PROJECT_DIR}\lams_tool_forum\build.properties" + + SetoutPath "$TEMP\lams\lamc11" + File "${BASE_PROJECT_DIR}\lams_tool_lamc\build.properties" + + SetoutPath "$TEMP\lams\laqa11" + File "${BASE_PROJECT_DIR}\lams_tool_laqa\build.properties" + + SetoutPath "$TEMP\lams\larsrc11" + File "${BASE_PROJECT_DIR}\lams_tool_larsrc\build.properties" + + SetoutPath "$TEMP\lams\lanb11" + File "${BASE_PROJECT_DIR}\lams_tool_nb\build.properties" + + SetoutPath "$TEMP\lams\lantbk" + File "${BASE_PROJECT_DIR}\lams_tool_notebook\build.properties" + + SetoutPath "$TEMP\lams\lasbmt11" + File "${BASE_PROJECT_DIR}\lams_tool_sbmt\build.properties" + + SetoutPath "$TEMP\lams\lascrb11" + File "${BASE_PROJECT_DIR}\lams_tool_scribe\build.properties" + + SetoutPath "$TEMP\lams\lasurv11" + File "${BASE_PROJECT_DIR}\lams_tool_survey\build.properties" + + SetoutPath "$TEMP\lams\lavote11" + File "${BASE_PROJECT_DIR}\lams_tool_vote\build.properties" + +FunctionEnd + +# Extracting the jars and wars for each tool also copies language files and sql +Function extractToolJars + + SetoutPath "$TEMP\lams\lachat11\build\deploy\" + File "${BASE_PROJECT_DIR}\lams_tool_chat\build\lib\*.jar" + File "${BASE_PROJECT_DIR}\lams_tool_chat\build\lib\*.war" + SetoutPath "$TEMP\lams\lachat11\build\deploy\sql" + File /r "${BASE_PROJECT_DIR}\lams_tool_chat\build\deploy\sql\*" + SetoutPath "$TEMP\lams\lachat11\build\deploy\language" + File "${BASE_PROJECT_DIR}\lams_tool_chat\build\deploy\language\*.properties" + + SetoutPath "$TEMP\lams\lafrum11\build\deploy\" + File "${BASE_PROJECT_DIR}\lams_tool_forum\build\lib\*.jar" + File "${BASE_PROJECT_DIR}\lams_tool_forum\build\lib\*.war" + SetoutPath "$TEMP\lams\lafrum11\build\deploy\sql" + File /r "${BASE_PROJECT_DIR}\lams_tool_forum\build\deploy\sql\*" + SetoutPath "$TEMP\lams\lafrum11\build\deploy\language" + File "${BASE_PROJECT_DIR}\lams_tool_forum\build\deploy\language\*.properties" + + SetoutPath "$TEMP\lams\lamc11\build\deploy\" + File "${BASE_PROJECT_DIR}\lams_tool_lamc\build\lib\*.jar" + File "${BASE_PROJECT_DIR}\lams_tool_lamc\build\lib\*.war" + SetoutPath "$TEMP\lams\lamc11\build\deploy\sql" + File /r "${BASE_PROJECT_DIR}\lams_tool_lamc\build\deploy\sql\*" + SetoutPath "$TEMP\lams\lamc11\build\deploy\language" + File "${BASE_PROJECT_DIR}\lams_tool_lamc\build\deploy\language\*.properties" + + SetoutPath "$TEMP\lams\laqa11\build\deploy\" + File "${BASE_PROJECT_DIR}\lams_tool_laqa\build\lib\*.jar" + File "${BASE_PROJECT_DIR}\lams_tool_laqa\build\lib\*.war" + SetoutPath "$TEMP\lams\laqa11\build\deploy\sql" + File /r "${BASE_PROJECT_DIR}\lams_tool_laqa\build\deploy\sql\*" + SetoutPath "$TEMP\lams\laqa11\build\deploy\language" + File "${BASE_PROJECT_DIR}\lams_tool_laqa\build\deploy\language\*.properties" + + SetoutPath "$TEMP\lams\larsrc11\build\deploy\" + File "${BASE_PROJECT_DIR}\lams_tool_larsrc\build\lib\*.jar" + File "${BASE_PROJECT_DIR}\lams_tool_larsrc\build\lib\*.war" + SetoutPath "$TEMP\lams\larsrc11\build\deploy\sql" + File /r "${BASE_PROJECT_DIR}\lams_tool_larsrc\build\deploy\sql\*" + SetoutPath "$TEMP\lams\larsrc11\build\deploy\language" + File "${BASE_PROJECT_DIR}\lams_tool_larsrc\build\deploy\language\*.properties" + + SetoutPath "$TEMP\lams\lanb11\build\deploy\" + File "${BASE_PROJECT_DIR}\lams_tool_nb\build\lib\*.jar" + File "${BASE_PROJECT_DIR}\lams_tool_nb\build\lib\*.war" + SetoutPath "$TEMP\lams\lanb11\build\deploy\sql" + File /r "${BASE_PROJECT_DIR}\lams_tool_nb\build\deploy\sql\*" + SetoutPath "$TEMP\lams\lanb11\build\deploy\language" + File "${BASE_PROJECT_DIR}\lams_tool_nb\build\deploy\language\*.properties" + + SetoutPath "$TEMP\lams\lantbk11\build\deploy\" + File "${BASE_PROJECT_DIR}\lams_tool_notebook\build\lib\*.jar" + File "${BASE_PROJECT_DIR}\lams_tool_notebook\build\lib\*.war" + SetoutPath "$TEMP\lams\lantbk11\build\deploy\sql" + File /r "${BASE_PROJECT_DIR}\lams_tool_notebook\build\deploy\sql\*" + SetoutPath "$TEMP\lams\lantbk11\build\deploy\language" + File "${BASE_PROJECT_DIR}\lams_tool_notebook\build\deploy\language\*.properties" + + SetoutPath "$TEMP\lams\lasbmt11\build\deploy\" + File "${BASE_PROJECT_DIR}\lams_tool_sbmt\build\lib\*.jar" + File "${BASE_PROJECT_DIR}\lams_tool_sbmt\build\lib\*.war" + SetoutPath "$TEMP\lams\lasbmt11\build\deploy\sql" + File /r "${BASE_PROJECT_DIR}\lams_tool_sbmt\build\deploy\sql\*" + SetoutPath "$TEMP\lams\lasbmt11\build\deploy\language" + File "${BASE_PROJECT_DIR}\lams_tool_sbmt\build\deploy\language\*.properties" + + SetoutPath "$TEMP\lams\lascrb11\build\deploy\" + File "${BASE_PROJECT_DIR}\lams_tool_scribe\build\lib\*.jar" + File "${BASE_PROJECT_DIR}\lams_tool_scribe\build\lib\*.war" + SetoutPath "$TEMP\lams\lascrb11\build\deploy\sql" + File /r "${BASE_PROJECT_DIR}\lams_tool_scribe\build\deploy\sql\*" + SetoutPath "$TEMP\lams\lascrb11\build\deploy\language" + File "${BASE_PROJECT_DIR}\lams_tool_scribe\build\deploy\language\*.properties" + + SetoutPath "$TEMP\lams\lasurv11\build\deploy\" + File "${BASE_PROJECT_DIR}\lams_tool_survey\build\lib\*.jar" + File "${BASE_PROJECT_DIR}\lams_tool_survey\build\lib\*.war" + SetoutPath "$TEMP\lams\lasurv11\build\deploy\sql" + File /r "${BASE_PROJECT_DIR}\lams_tool_survey\build\deploy\sql\*" + SetoutPath "$TEMP\lams\lasurv11\build\deploy\language" + File "${BASE_PROJECT_DIR}\lams_tool_survey\build\deploy\language\*.properties" + + SetoutPath "$TEMP\lams\lavote11\build\deploy\" + File "${BASE_PROJECT_DIR}\lams_tool_vote\build\lib\*.jar" + File "${BASE_PROJECT_DIR}\lams_tool_vote\build\lib\*.war" + SetoutPath "$TEMP\lams\lavote11\build\deploy\sql" + File /r "${BASE_PROJECT_DIR}\lams_tool_vote\build\deploy\sql\*" + SetoutPath "$TEMP\lams\lavote11\build\deploy\language" + File "${BASE_PROJECT_DIR}\lams_tool_vote\build\deploy\language\*.properties" + + +FunctionEnd + +Function insertCustomToolContexts + + # Running the ant scripts to update web.xmls and manifests + strcpy $0 '"$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat" -logfile "$INSTDIR\update-logs\ant-update-custom-tool-contexts.log" -buildfile "$TEMP\lams\update-deploy-tools.xml" -D"prop.path=$TOOL_SIG" update-custom-tool-contexts' + DetailPrint $0 + nsExec::ExecToStack $0 + Pop $0 ; return code, 0=success, error=fail + Pop $1 ; console output + ${if} $0 == "error" + ${orif} $0 == 1 + goto error + ${endif} + DetailPrint "Result: $1" + + push "$INSTDIR\update-logs\ant-update-custom-tool-contexts.log" + push "FAILED" + Call FileSearch + Pop $0 #Number of times found throughout + Pop $3 #Found at all? yes/no + Pop $2 #Number of lines found in + StrCmp $3 yes 0 +2 + goto error + + goto done + error: + DetailPrint "Web.xml update failed" + MessageBox MB_OK|MB_ICONSTOP "Web.xml update failed, check update logs in the installation directory for details $\r$\nError:$\r$\n$\r$\n$1" + Abort "LAMS configuration failed" + done: + +FunctionEnd + +################################################################################ +# END CODE USED FOR UPDATER # +################################################################################ + + + + + +################################################################################ +# CODE USED FOR INSTALLER # +################################################################################ + +Function DeployConfig + # extract support files to write configuration + SetOutPath $INSTDIR + File /r "${BASE_DIR}\apache-ant-1.6.5" + File /r "${BASE_DIR}\zip" + SetOutPath $TEMP + File "${ANT}\build.xml" + File "${TEMPLATES}\mysql-ds.xml" + File "${TEMPLATES}\server.xml" + File "${TEMPLATES}\run.bat" + File "${TEMPLATES}\wrapper.conf" + File "${TEMPLATES}\index.html" + File "${SQL}\update_lams_configuration.sql" + File "${CONF}\login-config.xml" + File "${CONF}\log4j.xml" + + # create installer.properties + ClearErrors + FileOpen $0 $TEMP\installer.properties w + IfErrors 0 +2 + goto error + + # convert '\' to '/' for Ant's benefit + Push $TEMP + Push "\" + Call StrSlash + Pop $2 + FileWrite $0 "TEMP=$2$\r$\n" + + Push $INSTDIR + Push "\" + Call StrSlash + Pop $2 + FileWrite $0 "URL=http://$LAMS_DOMAIN:$LAMS_PORT/lams/$\r$\n" + FileWrite $0 "INSTDIR=$2/$\r$\n" + FileWrite $0 "TEMPDIR=$2/temp$\r$\n" + FileWrite $0 "DUMPDIR=$2/dump$\r$\n" + FileWrite $0 "EARDIR=$2/jboss-4.0.2/server/default/deploy/lams.ear$\r$\n" + FileWrite $0 "DEPLOYDIR=$2/jboss-4.0.2/server/default/deploy$\r$\n" + FileWrite $0 "TOMCATDIR=$2/jboss-4.0.2/server/default/deploy/jbossweb-tomcat55.sar$\r$\n" + FileWrite $0 "BINDIR=$2/jboss-4.0.2/bin$\r$\n" + + # Use unix slashes for config in wrapper.conf + Push $JDK_DIR + Push "\" + Call StrSlash + Pop $2 + FileWrite $0 "JDK_DIR_UNIX_SLASH=$2$\r$\n" + + Push $LAMS_REPOSITORY + Push "\" + Call StrSlash + Pop $2 + FileWrite $0 "REPOSITORYDIR=$2$\r$\n" + + StrCpy $LAMS_LOCALE $LAMS_LOCALE 5 + FileWrite $0 "LOCALE=$LAMS_LOCALE$\r$\n" + ${If} $LAMS_LOCALE == "ar_JO" + FileWrite $0 "LOCALE_DIRECTION=RTL$\r$\n" + ${Else} + FileWrite $0 "LOCALE_DIRECTION=LTR$\r$\n" + ${EndIf} + + FileWrite $0 "WILDFIRE_DOMAIN=$WILDFIRE_DOMAIN$\r$\n" + FileWrite $0 "WILDFIRE_CONFERENCE=conference.$WILDFIRE_DOMAIN$\r$\n" + FileWrite $0 "WILDFIRE_USER=$WILDFIRE_USER$\r$\n" + FileWrite $0 "WILDFIRE_PASS=$WILDFIRE_PASS$\r$\n" + + FileWrite $0 "MYSQL_HOST=$MYSQL_HOST$\r$\n" + FileWrite $0 "MYSQL_PORT=$MYSQL_PORT$\r$\n" + FileWrite $0 "DB_NAME=$DB_NAME$\r$\n" + FileWrite $0 "DB_USER=$DB_USER$\r$\n" + FileWrite $0 "DB_PASS=$DB_PASS$\r$\n" + FileWrite $0 "DICTIONARY_DATE=${LANGUAGE_PACK_VERSION}$\r$\n" + FileWrite $0 "SERVER_VERSION=${SERVER_VERSION_NUMBER}$\r$\n" + FileWrite $0 "LAMS_VERSION=${VERSION}$\r$\n" + + FileWrite $0 "LAMS_PORT=$LAMS_PORT$\r$\n" + FileWrite $0 "LAMS_USER=$LAMS_USER$\r$\n" + FileWrite $0 "LAMS_PASS=$LAMS_PASS$\r$\n" + + FileClose $0 + # for debugging purposes + CopyFiles "$TEMP\installer.properties" $INSTDIR + + # use Ant to write config to files + FileOpen $0 "$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat" w + IfErrors 0 +2 + goto error + FileWrite $0 "@echo off$\r$\nset JAVACMD=$JDK_DIR\bin\java$\r$\n" + FileClose $0 + ${FileJoin} "$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat" "$INSTDIR\apache-ant-1.6.5\bin\ant.bat" "" + DetailPrint '$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat configure-deploy' + nsExec::ExecToStack '$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat configure-deploy' + Pop $0 ; return code, 0=success, error=fail + Pop $1 ; console output + + + createdirectory "$INSTDIR\install-logs" + FileOpen $R0 "$INSTDIR\install-logs\configure-deploy.log" w + IfErrors 0 +2 + goto error + FileWrite $R0 $1 + FileClose $R0 + + ${If} $0 == "error" + goto error + ${EndIf} + ${StrStr} $0 $1 "BUILD SUCCESSFUL" + ${If} $0 == "" + goto error + ${EndIf} + + # write my.ini if exists, doesnt write READ-COMMITTED if its already written + # TODO doesn't take effect until mysql server is restarted + DetailPrint "Setting MySQL transaction-isolation to READ-COMMITTED" + iffileexists "$MYSQL_DIR\my.ini" 0 difini + push "$MYSQL_DIR\my.ini" + push "transaction-isolation=READ-COMMITTED" + Call FileSearch + Pop $0 #Number of times found throughout + Pop $3 #Found at all? yes/no + Pop $2 #Number of lines found in + intcmp $0 0 0 done done + clearerrors + ${LineFind} "$MYSQL_DIR\my.ini" "" "1" "WriteMyINI" + IfErrors nomyini myini + difini: + iffileexists "$WINDIR\my.ini" 0 nomyini + push "$WINDIR\my.ini" + push "transaction-isolation=READ-COMMITTED" + Call FileSearch + Pop $0 #Number of times found throughout + Pop $3 #Found at all? yes/no + Pop $2 #Number of lines found in + intcmp $0 0 0 done done + clearerrors + ${LineFind} "$WINDIR\my.ini" "" "1" "WriteMyINI" + IfErrors nomyini myini + nomyini: + MessageBox MB_OK|MB_ICONEXCLAMATION "Couldn't write to $MYSQL_DIR\my.ini. Please write this text into your MySQL configuration file and restart MySQL:$\r$\n$\r$\n[mysqld]$\r$\ntransaction-isolation=READ-COMMITTED" + goto done + myini: + DetailPrint "MySQL will need to be restarted for this to take effect." + goto done + error: + DetailPrint "Ant configure-deploy failed." + MessageBox MB_OK|MB_ICONSTOP "LAMS configuration failed. Please check your LAMS configuration and try again.$\r$\nError:$\r$\n$\r$\n$1" + Abort "LAMS configuration failed." + done: +FunctionEnd + + +Function WriteMyINI + FileWrite $R4 "[mysqld]$\r$\n" + FileWrite $R4 "transaction-isolation=READ-COMMITTED$\r$\n" + Push $0 +FunctionEnd + +Function readRegistry + ReadRegStr $INSTDIR HKLM "${REG_HEAD}" "dir_inst" + ReadRegStr $DB_NAME HKLM "${REG_HEAD}" "db_name" + ReadRegStr $DB_PASS HKLM "${REG_HEAD}" "db_pass" + ReadRegStr $DB_USER HKLM "${REG_HEAD}" "db_user" + ReadRegStr $JDK_DIR HKLM "${REG_HEAD}" "dir_jdk" + ReadRegStr $MYSQL_DIR HKLM "${REG_HEAD}" "dir_mysql" + ReadRegStr $LAMS_REPOSITORY HKLM "${REG_HEAD}" "dir_repository" + ReadRegStr $LAMS_DOMAIN HKLM "${REG_HEAD}" "lams_domain" + ReadRegStr $LAMS_LOCALE HKLM "${REG_HEAD}" "lams_locale" + ReadRegStr $LAMS_PORT HKLM "${REG_HEAD}" "lams_port" + #ReadRegStr $VERSION HKLM "${REG_HEAD}" "version" + ReadRegStr $WILDFIRE_DOMAIN HKLM "${REG_HEAD}" "wildfire_domain" + ReadRegStr $WILDFIRE_PASS HKLM "${REG_HEAD}" "wildfire_pass" + ReadRegStr $WILDFIRE_USER HKLM "${REG_HEAD}" "wildfire_user" + ReadRegStr $OLD_LANG_VERSION HKLM "${REG_HEAD}" "language_pack" + ; Getting the mysql_ip from the registry (2.0.3) + ReadRegStr $MYSQL_HOST HKLM "${REG_HEAD}" "mysql_host" + ${if} $MYSQL_HOST == "" + strcpy $MYSQL_HOST "localhost" + ${endif} + ; TODO Change after 2.1, get the port from the registry instead or hard coding it + ;ReadRegStr $MYSQL_PORT HKLM "${REG_HEAD}" "mysql_port" + strcpy $MYSQL_PORT 3360 + +FunctionEnd + + +Function ImportDatabase + SetOutPath $TEMP + File "${BUILD_DIR}\dump.sql" + + # Only do this if mysql is set up on local host + ####################################################### + ${If} $MYSQL_HOST == 'localhost' + # $9 == 0 for empty password + StrLen $9 $MYSQL_ROOT_PASS + + StrCpy $0 '$MYSQL_DIR\bin\mysql -e "CREATE DATABASE $DB_NAME DEFAULT CHARACTER SET utf8" -u root' + DetailPrint $0 + ${If} $9 != 0 + StrCpy $0 '$MYSQL_DIR\bin\mysql -e "CREATE DATABASE $DB_NAME DEFAULT CHARACTER SET utf8" -u root -p$MYSQL_ROOT_PASS' + ${EndIf} + nsExec::ExecToStack $0 + Pop $0 + Pop $1 + ${If} $0 == 1 + goto error + ${EndIf} + + StrCpy $0 `$MYSQL_DIR\bin\mysql -e "GRANT ALL PRIVILEGES ON *.* TO $DB_USER@localhost IDENTIFIED BY '$DB_PASS'" -u root` + DetailPrint $0 + ${If} $9 != 0 + StrCpy $0 `$MYSQL_DIR\bin\mysql -e "GRANT ALL PRIVILEGES ON *.* TO $DB_USER@localhost IDENTIFIED BY '$DB_PASS'" -u root -p$MYSQL_ROOT_PASS` + ${EndIf} + nsExec::ExecToStack $0 + Pop $0 + Pop $1 + ${If} $0 == 1 + goto error + ${EndIf} + + StrCpy $0 '$MYSQL_DIR\bin\mysql -e "REVOKE PROCESS,SUPER ON *.* from $DB_USER@localhost" -u root' + DetailPrint $0 + ${If} $9 != 0 + StrCpy $0 '$MYSQL_DIR\bin\mysql -e "REVOKE PROCESS,SUPER ON *.* from $DB_USER@localhost" -u root -p$MYSQL_ROOT_PASS' + ${EndIf} + nsExec::ExecToStack $0 + Pop $0 + Pop $1 + ${If} $0 == 1 + goto error + ${EndIf} + + StrCpy $0 '$MYSQL_DIR\bin\mysqladmin flush-privileges -u root' + DetailPrint $0 + ${If} $9 != 0 + StrCpy $0 '$MYSQL_DIR\bin\mysqladmin flush-privileges -u root -p$MYSQL_ROOT_PASS' + ${EndIf} + nsExec::ExecToStack $0 + Pop $0 + Pop $1 + ${If} $0 == 1 + goto error + ${EndIf} + + ${if} $RETAIN_FILES == '1' + #unzip repository files + setoutpath "$INSTDIR\backup" + strcpy $4 '$INSTDIR\zip\7za.exe x -aoa "backup.zip"' + nsExec::ExecToStack $4 + pop $5 + pop $6 + ${if} $5 != 0 + Detailprint "7za Unzip error: $\r$\n$\r$\n$6" + MessageBox MB_OK|MB_ICONSTOP "7za Unzip error:$\r$\nError:$\r$\n$\r$\n$6" + Abort "Lams configuration failed" + ${endif} + + #replace the install dump with the retained dump + #MessageBox MB_OK|MB_ICONEXCLAMATION "Rebuilding datbase" + CopyFiles "$INSTDIR\backup\lamsDump.sql" "$TEMP\dump.sql" + DetailPrint "Using retained database: $INSTDIR\backup\lamsDump.sql" + + RMdir /r "$INSTDIR\backup\jboss-4.0.2" + RMdir /r "$INSTDIR\backup\repository" + delete "$INSTDIR\backup\lamsDump.sql" + + Detailprint "finished copying lamsdump.sql" + ${endif} + ${endif} + ####################################################### + + SetOutPath $TEMP + # use Ant to import database + DetailPrint '$INSTDIR\apache-ant-1.6.5\bin\ant.bat -logfile "$INSTDIR\install-logs\import-db.log" import-db' + nsExec::ExecToStack '$INSTDIR\apache-ant-1.6.5\bin\newAnt.bat -logfile "$INSTDIR\install-logs\import-db.log" import-db' + # MessageBox MB_OK|MB_ICONEXCLAMATION "Database has been filled" + Pop $0 ; return code, 0=success, error=fail + Pop $1 ; console output + + ${if} $0 != 0 + goto error + ${endif} + + goto done + error: + MessageBox MB_OK|MB_ICONSTOP "Database setup failed. Please check your MySQL configuration and try again.$\r$\nError:$\r$\n$\r$\n$1" + Abort "Database setup failed." + done: + +FunctionEnd + + +Function WriteRegEntries + WriteRegStr HKLM "${REG_HEAD}" "dir_jdk" $JDK_DIR + WriteRegStr HKLM "${REG_HEAD}" "dir_mysql" "$MYSQL_DIR\" + WriteRegStr HKLM "${REG_HEAD}" "mysql_host" "$MYSQL_HOST" + WriteRegStr HKLM "${REG_HEAD}" "mysql_port" "$MYSQL_PORT" + WriteRegStr HKLM "${REG_HEAD}" "dir_inst" $INSTDIR + WriteRegStr HKLM "${REG_HEAD}" "dir_repository" $LAMS_REPOSITORY + WriteRegStr HKLM "${REG_HEAD}" "version" "${VERSION}" + WriteRegStr HKLM "${REG_HEAD}" "server_version" "${SERVER_VERSION_NUMBER}" + WriteRegStr HKLM "${REG_HEAD}" "db_name" $DB_NAME + WriteRegStr HKLM "${REG_HEAD}" "db_user" $DB_USER + WriteRegStr HKLM "${REG_HEAD}" "db_pass" $DB_PASS + WriteRegStr HKLM "${REG_HEAD}" "lams_domain" $LAMS_DOMAIN + WriteRegStr HKLM "${REG_HEAD}" "lams_port" $LAMS_PORT + WriteRegStr HKLM "${REG_HEAD}" "lams_locale" $LAMS_LOCALE + WriteRegStr HKLM "${REG_HEAD}" "language_pack" ${LANGUAGE_PACK_VERSION_INT} + WriteRegStr HKLM "${REG_HEAD}" "wildfire_domain" $WILDFIRE_DOMAIN + WriteRegStr HKLM "${REG_HEAD}" "wildfire_user" $WILDFIRE_USER + WriteRegStr HKLM "${REG_HEAD}" "wildfire_pass" $WILDFIRE_PASS +FunctionEnd + +Function OverWriteRetainedFiles + # overwriting retain files (moved to windows/temp) to install directory files + ${if} $RETAIN_FILES == "1" + #MessageBox MB_OK|MB_ICONSTOP "repository files to be retained" + + #unzip repository files + setoutpath "$INSTDIR\backup" + strcpy $4 '$INSTDIR\zip\7za.exe x -aoa "backup.zip"' + nsExec::ExecToStack $4 + #pop $0 + #pop $1 + #MessageBox MB_OK|MB_ICONSTOP "Extracting retained files: $0$\n$1" + + #copy repository and uploaded files to install directory + CopyFiles "$WINTEMP\lams\backup\repository" "$INSTDIR\" + DetailPrint "$INSTDIR\repository" + CopyFiles "$WINTEMP\lams\backup\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war" "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\" + DetailPrint "Overwrite $INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war" + ${endif} + RMdir "$WINTEMP\lams" +FunctionEnd + +Function SetupStartMenu + CreateDirectory "$SMPROGRAMS\LAMSv2" + CreateShortCut "$SMPROGRAMS\LAMSv2\Access LAMS.lnk" "http://$LAMS_DOMAIN:$LAMS_PORT/lams/" + CreateShortCut "$SMPROGRAMS\LAMSv2\LAMS Community.lnk" "http://www.lamscommunity.org" + CreateShortCut "$SMPROGRAMS\LAMSv2\Start LAMS.lnk" "$INSTDIR\lams-start.exe" + CreateShortCut "$SMPROGRAMS\LAMSv2\Stop LAMS.lnk" "$INSTDIR\lams-stop.exe" + CreateShortCut "$SMPROGRAMS\LAMSv2\Backup LAMS.lnk" "$INSTDIR\lams-backup.exe" + CreateShortCut "$SMPROGRAMS\LAMSv2\Restore previous LAMS version.lnk" "$INSTDIR\lams-restore.exe" + CreateShortCut "$SMPROGRAMS\LAMSv2\Uninstall LAMS.lnk" "$INSTDIR\lams-uninstall.exe" +FunctionEnd + + +# cleanup functions +Function RemoveTempFiles + Delete "$TEMP\LocalPortScanner.class" + Delete "$TEMP\mysql-ds.xml" + Delete "$TEMP\server.xml" + Delete "$TEMP\run.bat" + Delete "$TEMP\wrapper.conf" + Delete "$TEMP\dump.sql" + Delete "$TEMP\build.xml" + Delete "$TEMP\installer.properties" + Delete "$INSTDIR\wrapper.conf" + Delete "$TEMP\index.html" + Delete "$TEMP\lamsauthentication.xml" + Delete "$TEMP\update_lams_configuration.sql" + Delete "$TEMP\login-config.xml" + Delete "$INSTDIR\update_lams_configuration.sql" + RMDIR /r "$WINTEMP\lams" +FunctionEnd + +Function .onInstFailed + ${if} $IS_UPDATE == 0 + ;remove all files from the instdir excluding the backed up files + RMDir /r "$INSTDIR\jboss-4.0.2" + RMDir /r "$INSTDIR\dump" + RMDir /r "$INSTDIR\repository" + RMDir /r "$INSTDIR\temp" + RMDir /r "$INSTDIR\build" + Delete "$INSTDIR\index.html" + Delete "$INSTDIR\installer.properties" + Delete "$INSTDIR\lams-start.exe" + Delete "$INSTDIR\lams-stop.exe" + Delete "$INSTDIR\lams-backup.exe" + Delete "$INSTDIR\lams-restore.exe" + Delete "$INSTDIR\lams_uninstall.exe" + Delete "$INSTDIR\license.txt" + Delete "$INSTDIR\readme.txt" + + strcpy $0 $MYSQL_DIR + strcpy $1 $DB_NAME + strcpy $2 $DB_USER + strcpy $3 $DB_PASS + + StrLen $9 $3 + StrCpy $4 '$0\bin\mysql -e "DROP DATABASE $1" -u $2' + DetailPrint $4 + ${If} $9 != 0 + StrCpy $4 '$0\bin\mysql -e "DROP DATABASE $1" -u $2 -p$3' + ${EndIf} + + ReadRegStr $MYSQL_HOST HKLM "${REG_HEAD}" "mysql_host" + ${If} $MYSQL_HOST == 'localhost' + nsExec::ExecToStack $4 + Pop $0 + Pop $1 + ${If} $0 == 1 + MessageBox MB_OK|MB_ICONEXCLAMATION "Couldn't remove LAMS database:$\r$\n$\r$\n$1" + DetailPrint "Failed to remove LAMS database." + ${EndIf} + ${EndIf} + + Call RemoveTempFiles + DeleteRegKey HKLM "${REG_HEAD}" + ${else} + ; Do cleanup for failed update + rmdir /r "$INSTDIR\apache-ant-1.6.5" + RMDir /r "$INSTDIR\zip" + RMDir /r "$EXEDIR\zip" + RMDir /r "$EXEDIR\build" + rmdir /r "$TEMP\installer.properties" + rmdir /r "$TEMP\lams" + ${if} $OLD_LANG_VERSION != "" + WriteRegStr HKLM "${REG_HEAD}" "language_pack" $OLD_LANG_VERSION + ${endif} + WriteRegStr HKLM "${REG_HEAD}" "version" ${PREVIOUS_VERSION} + delete "$INSTDIR\LanguagePack.xml" + + ${endif} +FunctionEnd + +Function .onInstSuccess + + DetailPrint "LAMS ${VERSION} configuration successful." + ${if} $IS_UPDATE == 0 + Call RemoveTempFiles + RMDir /r "$INSTDIR\apache-ant-1.6.5" + RMDir /r "$INSTDIR\zip" + RMDir /r "$INSTDIR\backup\repository" + RMDIR /r "$INSTDIR\backup\jboss-4.0.2" + rmdir /r "$TEMP\lams" + Delete "$INSTDIR\backup\lamsDump.sql" + ${else} + ;cleanup for update successfull install + rmdir /r "$INSTDIR\apache-ant-1.6.5" + RMDir /r "$INSTDIR\zip" + RMDir /r "$EXEDIR\zip" + RMDir /r "$EXEDIR\build" + rmdir /r "$TEMP\installer.properties" + rmdir /r "$TEMP\lams" + ${endif} +FunctionEnd + +################################################################################ +# END CODE USED FOR INSTALLER # +################################################################################ + +################################################################################ +# CODE USED FOR LANGUAGE PACK # +################################################################################ + +; first, finds the location of the language files in the database +; then copy the required files to the dirname +Var CSllid +Var FSllid +Var RFllid +Function copyllid + setoutpath "$TEMP\lams" + File "${BUILD_DIR}\GetLlidFolderNames.class" + + strcpy $1 "jdbc:mysql://$MYSQL_HOST/$DB_NAME?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true" + ReadRegStr $3 HKLM "${REG_HEAD}" "dir_jdk" + # execute llid finder + Detailprint '"$3\bin\java.exe" -cp ".;lib\mysql-connector-java-3.1.12-bin.jar" GetLlidFolderNames "Chat and Scribe" "$1" "$DB_USER" "$DB_PASS"' + nsExec::ExecToStack '"$3\bin\java.exe" -cp ".;lib\mysql-connector-java-3.1.12-bin.jar" GetLlidFolderNames "Chat and Scribe" "$1" "$DB_USER" "$DB_PASS"' + pop $0 + pop $CSllid + ${if} $0 != '0' + Messagebox MB_OK|MB_ICONSTOP "Error while finding Chat and Scrbe llid folders" + Abort + ${endif} + + setoutpath "$TEMP\lams" + File "${BUILD_DIR}\GetLlidFolderNames.class" + + strcpy $1 "jdbc:mysql://$MYSQL_HOST/$DB_NAME?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true" + ReadRegStr $3 HKLM "${REG_HEAD}" "dir_jdk" + # execute llid finder + Detailprint '"$3\bin\java.exe" -cp ".;lib\mysql-connector-java-3.1.12-bin.jar" GetLlidFolderNames "Forum and Scribe" "$1" "$DB_USER" "$DB_PASS"' + nsExec::ExecToStack '"$3\bin\java.exe" -cp ".;lib\mysql-connector-java-3.1.12-bin.jar" GetLlidFolderNames "Forum and Scribe" "$1" "$DB_USER" "$DB_PASS"' + pop $0 + pop $FSllid + ${if} $0 != '0' + Messagebox MB_OK|MB_ICONSTOP "Error while finding Forum and Scribe llid folders" + Abort + ${endif} + + strcpy $1 "jdbc:mysql://$MYSQL_HOST/$DB_NAME?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true" + ReadRegStr $3 HKLM "${REG_HEAD}" "dir_jdk" + # execute llid finder + Detailprint '"$3\bin\java.exe" -cp ".;lib\mysql-connector-java-3.1.12-bin.jar" GetLlidFolderNames "Resource and Forum" "$1" "$DB_USER" "$DB_PASS"' + nsExec::ExecToStack '"$3\bin\java.exe" -cp ".;lib\mysql-connector-java-3.1.12-bin.jar" GetLlidFolderNames "Resources and Forum" "$1" "$DB_USER" "$DB_PASS"' + pop $0 + pop $RFllid + ${if} $0 != '0' + Messagebox MB_OK|MB_ICONSTOP "Error while finding Resource and Forum llid folders" + Abort + ${endif} + + setoutpath "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-dictionary.jar\org\lamsfoundation\lams\library\llid$CSllid" + file /a "${BASE_PROJECT_DIR}\lams_build\librarypackages\chatscribe\language\lams\*" + + setoutpath "$INSTDIR\server\jboss-4.0.2\default\deploy\lams.ear\lams-dictionary.jar\org\lamsfoundation\lams\library\llid$FSllid" + file /a "${BASE_PROJECT_DIR}\lams_build\librarypackages\forumscribe\language\lams\*" + + setoutpath "$INSTDIR\server\jboss-4.0.2\default\deploy\lams.ear\lams-dictionary.jar\org\lamsfoundation\lams\library\llid$RFllid" + file /a "${BASE_PROJECT_DIR}\lams_build\librarypackages\shareresourcesforum\language\lams\*" + +FunctionEnd + +################################################################################ +# END CODE USED FOR LANGUAGE PACK # +################################################################################ + + +################################################################################ +# CODE USED FOR UNINSTALLER # +################################################################################ +# Uninstaller +# +Var UNINSTALL_RETAIN +#Var UNINSTALL_DB +#Var UNINSTALL_RP +#Var UNINSTALL_CF + +Function un.onInit + ;!insertmacro MUI_LANGDLL_DISPLAY + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "uninstall.ini" + + # check if LAMS is stopped + SetOutPath $TEMP + File "${BUILD_DIR}\LocalPortScanner.class" + ReadRegStr $0 HKLM "${REG_HEAD}" "lams_port" + ReadRegStr $1 HKLM "${REG_HEAD}" "dir_jdk" + Goto checklams + + checklams: + nsExec::ExecToStack "$1\bin\java LocalPortScanner $0" + Pop $2 + ${If} $2 == 2 + MessageBox MB_YESNO|MB_ICONQUESTION "LAMS appears to be running. Do you wish to stop LAMS?" \ + IDYES stoplams \ + IDNO quit + ${EndIf} + Goto continue + stoplams: + nsExec::ExecToStack 'sc stop LAMSv2' + Pop $0 + Pop $1 + DetailPrint "Sent stop command to LAMS service." + sleep 10000 + Goto checklams + # sleep for 10s to ensure that JBoss closes properly + + quit: + Delete "$TEMP\LocalPortScanner.class" + MessageBox MB_OK|MB_ICONSTOP "Uninstall cannot continue while LAMS is running." + Abort + + continue: + Delete "$TEMP\LocalPortScanner.class" +FunctionEnd + +Function un.PreUninstall + !insertmacro MUI_HEADER_TEXT "Remove LAMS Database" "Choose whether to remove the LAMS database." + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "uninstall.ini" +FunctionEnd + +Function un.PostUninstall + !insertmacro MUI_INSTALLOPTIONS_READ $UNINSTALL_RETAIN "uninstall.ini" "Field 1" "State" + ReadRegStr $MYSQL_HOST HKLM "${REG_HEAD}" "mysql_host" + ${if} $UNINSTALL_RETAIN == 1 + ${if} MYSQL_HOST != 'localhost' + MessageBox MB_YESNO|MB_ICONQUESTION "Unable to backup LAMS. MYSQL_HOST is not set to localhost. Manual backup required. $\r$\n$\r$\nWould you like to quit the uninstaller and backup LAMS manually? If you choose 'No', the unistallation will proceed and lams will not be backed up." IDYES quit IDNO continue + quit: + Quit + continue: + ${endif} + ${endif} +FunctionEnd + + +# http://nsis.sourceforge.net/StrStr +# +!define un.StrStr "!insertmacro un.StrStr" + +!macro un.StrStr ResultVar String SubString + Push `${String}` + Push `${SubString}` + Call un.StrStr + Pop `${ResultVar}` +!macroend + +Function un.StrStr +/*After this point: + ------------------------------------------ + $R0 = SubString (input) + $R1 = String (input) + $R2 = SubStringLen (temp) + $R3 = StrLen (temp) + $R4 = StartCharPos (temp) + $R5 = TempStr (temp)*/ + + ;Get input from user + Exch $R0 + Exch + Exch $R1 + Push $R2 + Push $R3 + Push $R4 + Push $R5 + + ;Get "String" and "SubString" length + StrLen $R2 $R0 + StrLen $R3 $R1 + ;Start "StartCharPos" counter + StrCpy $R4 0 + + ;Loop until "SubString" is found or "String" reaches its end + ${Do} + ;Remove everything before and after the searched part ("TempStr") + StrCpy $R5 $R1 $R2 $R4 + + ;Compare "TempStr" with "SubString" + ${IfThen} $R5 == $R0 ${|} ${ExitDo} ${|} + ;If not "SubString", this could be "String"'s end + ${IfThen} $R4 >= $R3 ${|} ${ExitDo} ${|} + ;If not, continue the loop + IntOp $R4 $R4 + 1 + ${Loop} + +/*After this point: + ------------------------------------------ + $R0 = ResultVar (output)*/ + + ;Remove part before "SubString" on "String" (if there has one) + StrCpy $R0 $R1 `` $R4 + + ;Return output to user + Pop $R5 + Pop $R4 + Pop $R3 + Pop $R2 + Pop $R1 + Exch $R0 +FunctionEnd + + +Section "Uninstall" + + strcpy $WINTEMP "C:\WINDOWS\Temp" + RMDir /r "$WINTEMP\lams\backup" + CreateDirectory "$WINTEMP\lams\backup" + + #strcpy $RETAIN_DIR "$INSTDIR\backup_$TIMESTAMP" + strcpy $RETAIN_DIR "$INSTDIR\backup" + CreateDirectory $RETAIN_DIR + + ReadRegStr $MYSQL_HOST HKLM "${REG_HEAD}" "mysql_host" + ;Now copy files that are to be retained to the temp folder + ${If} $UNINSTALL_RETAIN == 1 + #MessageBox MB_OK|MB_ICONEXCLAMATION "retaining repository" + ; KEEP repository and uploaded files + ; Copy repository and jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war to backup + ReadRegStr $6 HKLM "${REG_HEAD}" "dir_repository" + + CreateDirectory "$RETAIN_DIR\repository" + CreateDirectory "$RETAIN_DIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\" + + #MessageBox MB_OK|MB_ICONEXCLAMATION "Copying files to $RETAIN_DIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\" + copyfiles /silent $6 "$RETAIN_DIR" + copyfiles /silent "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\*" "$RETAIN_DIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-www.war\" + + DetailPrint 'Saving repository and uploaded files to: $RETAIN_DIR' + #MessageBox MB_OK|MB_ICONEXCLAMATION "Copying files from instdir to temp" + copyfiles /silent "$RETAIN_DIR\*" "$WINTEMP\lams\backup" + ${EndIf} + + setoutpath $temp + RMdir /r "$INSTDIR\jboss-4.0.2\" + RMdir /r "$INSTDIR\" + #MessageBox MB_OK|MB_ICONEXCLAMATION "INSTDIR DELETED FFS!" + + ; NOT SURE IF THIS SECTION OF CODE IS NECCESSARY + ReadRegStr $0 HKLM "${REG_HEAD}" "dir_conf" + RMDir /r $0 + + ; RESTORE Retained folders to their original localtion then delete temp files + ; DUMP database into backup folder + ReadRegStr $0 HKLM "${REG_HEAD}" "dir_mysql" + ReadRegStr $1 HKLM "${REG_HEAD}" "db_name" + ReadRegStr $2 HKLM "${REG_HEAD}" "db_user" + ReadRegStr $3 HKLM "${REG_HEAD}" "db_pass" + ${If} $UNINSTALL_RETAIN == 1 + #Messagebox MB_OK|MB_ICONEXCLAMATION "retaining db" + ; DUMP the database file into the retained install directory + + CreateDirectory "$RETAIN_DIR" + Strcpy $4 "$0\bin\mysqldump -r $WINTEMP\lams\backup\lamsDump.sql $1 -u $2 -p$3" + nsExec::ExecToStack $4 + Pop $8 + Pop $9 + DetailPrint 'Dumping database to: $RETAIN_DIR' + + Setoutpath $INSTDIR + File /r "${BASE_DIR}\zip" + + #ZIP UP ALL RETAINED FILES + IfFileExists "$WINTEMP\lams\backup\backup.zip" removeZip leaveFolder + removeZip: + delete "$WINTEMP\lams\backup\backup.zip" + leaveFolder: + + SetOutPath "$WINTEMP\lams\backup" + Strcpy $4 '$INSTDIR\zip\7za.exe a -r -tzip "$RETAIN_DIR\backup.zip" "*"' + nsExec::ExecToStack $4 + rmdir /r "$INSTDIR\zip" + #pop $5 + #pop $6 + #MessageBox MB_OK|MB_ICONEXCLAMATION "ZIP RESULT: $5$\n$6$\n" + rmdir $RETAIN_DIR + ${EndIf} + RMDir /r "$WINTEMP\lams" + + StrLen $9 $3 + ${if} $MYSQL_HOST == 'localhost' + StrCpy $4 '$0\bin\mysql -e "DROP DATABASE $1" -u $2' + DetailPrint $4 + ${If} $9 != 0 + StrCpy $4 '$0\bin\mysql -e "DROP DATABASE $1" -u $2 -p$3' + ${EndIf} + nsExec::ExecToStack $4 + Pop $0 + Pop $1 + ${If} $0 == 1 + MessageBox MB_OK|MB_ICONEXCLAMATION "Couldn't remove LAMS database:$\r$\n$\r$\n$1" + DetailPrint "Failed to remove LAMS database." + ${EndIf} + ${endif} + + ; batch file doesn't want to work when called with ExecToStack + ; nsExec::ExecToStack '$INSTDIR\jboss-4.0.2\bin\UninstallLAMS-NT.bat' + nsExec::ExecToStack 'sc delete LAMSv2' + Pop $0 + Pop $1 + ; can't call StrStr from within uninstaller unless it's a un. function + ${un.StrStr} $2 $1 "SUCCESS" + ${If} $2 == "" + MessageBox MB_OK|MB_ICONEXCLAMATION "Couldn't remove LAMSv2 service.$\r$\n$\r$\n$1" + DetailPrint "Failed to remove LAMSv2 service." + ${Else} + DetailPrint "Removed LAMSv2 service." + ${EndIf} + + DeleteRegKey HKLM "${REG_HEAD}" + DetailPrint "Removed registry entries." + RMDir /r "$SMPROGRAMS\LAMSv2" + DetailPrint "Removed start menu entries." + DetailPrint "Uninstall complete." +SectionEnd + +################################################################################ +# END CODE USED FOR UNINSTALLER # +################################################################################ \ No newline at end of file Index: win_installer/updater/src/wildfire.ini =================================================================== diff -u --- win_installer/updater/src/wildfire.ini (revision 0) +++ win_installer/updater/src/wildfire.ini (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,66 @@ +[Settings] +NumFields=8 + +[Field 1] +Type=GroupBox +Left=0 +Top=0 +Right=-1 +Bottom=-4 +Text=About your Wildfire server... + +[Field 2] +Type=Text +Left=7 +Top=36 +Right=129 +Bottom=49 +State=localhost + +[Field 3] +Type=Label +Left=7 +Top=26 +Right=129 +Bottom=35 +Text=Domain name... + +[Field 4] +Type=Label +Left=7 +Top=65 +Right=129 +Bottom=74 +Text=Admin username... + +[Field 5] +Type=Text +Left=7 +Top=75 +Right=129 +Bottom=88 +State=admin + +[Field 6] +Type=Label +Left=157 +Top=65 +Right=279 +Bottom=74 +Text=Admin password... + +[Field 7] +Type=Password +Left=157 +Top=75 +Right=279 +Bottom=88 + +[Field 8] +Type=Link +Left=7 +Top=116 +Right=134 +Bottom=126 +Text=Click to get online help for these options +State=http://wiki.lamsfoundation.org/display/lamsdocs/Windows+Installer+Help#WindowsInstallerHelp-wildfire Index: win_installer/updater/templates/index.html =================================================================== diff -u --- win_installer/updater/templates/index.html (revision 0) +++ win_installer/updater/templates/index.html (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,64 @@ + + + + + LAMS :: Learning Activity Management System + + + + + + + + + + + +
+ +

 

+ +
+ +
+ + +
+ +
+

LAMS - Learning Activity Management System

+ +
+

Waiting for LAMS to finish starting...

+
+

You will be redirected in 60 seconds.  Click here to go to the login page.

+ +

+ + + + +
+
+ + +
+ + + + + + + + +
+ + + + + + Index: win_installer/updater/templates/mysql-ds.xml =================================================================== diff -u --- win_installer/updater/templates/mysql-ds.xml (revision 0) +++ win_installer/updater/templates/mysql-ds.xml (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,64 @@ + + + + + + + + + jdbc/lams-ds + jdbc:mysql://@MYSQL_HOST@:@MYSQL_PORT@/@DB_NAME@ + com.mysql.jdbc.Driver + + + utf8 + convertToNull + + TRANSACTION_READ_COMMITTED + @DB_USER@ + @DB_PASS@ + + 64 + 0 + + 5 + + + + + jdbc/tool-ds + jdbc:mysql://@MYSQL_HOST@:3306/@DB_NAME@ + com.mysql.jdbc.Driver + + + utf8 + convertToNull + + TRANSACTION_READ_COMMITTED + @DB_USER@ + @DB_PASS@ + + 64 + 0 + + 5 + + + + + jdbc/quartz-ds + jdbc:mysql://@MYSQL_HOST@:3306/@DB_NAME@ + com.mysql.jdbc.Driver + + TRANSACTION_READ_COMMITTED + @DB_USER@ + @DB_PASS@ + + 64 + 0 + + 5 + + Index: win_installer/updater/templates/run.bat =================================================================== diff -u --- win_installer/updater/templates/run.bat (revision 0) +++ win_installer/updater/templates/run.bat (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,109 @@ +@echo off +rem ------------------------------------------------------------------------- +rem JBoss Bootstrap Script for Win32 +rem ------------------------------------------------------------------------- + +rem $Id$ + +@if not "%ECHO%" == "" echo %ECHO% +@if "%OS%" == "Windows_NT" setlocal + +set JAVA_HOME=@JAVA_HOME@ + +set DIRNAME=.\ +if "%OS%" == "Windows_NT" set DIRNAME=%~dp0% +set PROGNAME=run.bat +if "%OS%" == "Windows_NT" set PROGNAME=%~nx0% + +rem Read all command line arguments + +REM +REM The %ARGS% env variable commented out in favor of using %* to include +REM all args in java command line. See bug #840239. [jpl] +REM +REM set ARGS= +REM :loop +REM if [%1] == [] goto endloop +REM set ARGS=%ARGS% %1 +REM shift +REM goto loop +REM :endloop + +rem Find run.jar, or we can't continue + +set RUNJAR=%DIRNAME%\run.jar +if exist "%RUNJAR%" goto FOUND_RUN_JAR +echo Could not locate %RUNJAR%. Please check that you are in the +echo bin directory when running this script. +goto END + +:FOUND_RUN_JAR + +if not "%JAVA_HOME%" == "" goto ADD_TOOLS + +set JAVA=java + +echo JAVA_HOME is not set. Unexpected results may occur. +echo Set JAVA_HOME to the directory of your local JDK to avoid this message. +goto SKIP_TOOLS + +:ADD_TOOLS + +set JAVA=%JAVA_HOME%\bin\java + +if exist "%JAVA_HOME%\lib\tools.jar" goto SKIP_TOOLS +echo Could not locate %JAVA_HOME%\lib\tools.jar. Unexpected results may occur. +echo Make sure that JAVA_HOME points to a JDK and not a JRE. + +:SKIP_TOOLS + +rem Include the JDK javac compiler for JSP pages. The default is for a Sun JDK +rem compatible distribution to which JAVA_HOME points + +set JAVAC_JAR=%JAVA_HOME%\lib\tools.jar + +rem If JBOSS_CLASSPATH is empty, don't include it, as this will +rem result in including the local directory, which makes error tracking +rem harder. +if "%JBOSS_CLASSPATH%" == "" ( + set JBOSS_CLASSPATH=%JAVAC_JAR%;%RUNJAR% +) ELSE ( + set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%JAVAC_JAR%;%RUNJAR% +) + +rem Setup JBoss specific properties +set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME% +set JBOSS_HOME=%DIRNAME%\.. + +rem Sun JVM memory allocation pool parameters. Modify as appropriate. +set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m + +rem JPDA options. Uncomment and modify as appropriate to enable remote debugging. +rem set JAVA_OPTS=-classic -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS% + +rem Setup the java endorsed dirs +set JBOSS_ENDORSED_DIRS=%JBOSS_HOME%\lib\endorsed + +echo =============================================================================== +echo . +echo JBoss Bootstrap Environment +echo . +echo JBOSS_HOME: %JBOSS_HOME% +echo . +echo JAVA: %JAVA% +echo . +echo JAVA_OPTS: %JAVA_OPTS% +echo . +echo CLASSPATH: %JBOSS_CLASSPATH% +echo . +echo =============================================================================== +echo . + +:RESTART +ECHO "%JAVA%" %JAVA_OPTS% "-Djava.endorsed.dirs=%JBOSS_ENDORSED_DIRS%" -classpath "%JBOSS_CLASSPATH%" org.jboss.Main %* +IF ERRORLEVEL 10 GOTO RESTART + +:END +if "%NOPAUSE%" == "" pause + +:END_NO_PAUSE Index: win_installer/updater/templates/server.xml =================================================================== diff -u --- win_installer/updater/templates/server.xml (revision 0) +++ win_installer/updater/templates/server.xml (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: win_installer/updater/templates/wrapper.conf =================================================================== diff -u --- win_installer/updater/templates/wrapper.conf (revision 0) +++ win_installer/updater/templates/wrapper.conf (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,95 @@ +#******************************************************************** +# Wrapper Properties +#******************************************************************** +# Java Application +wrapper.java.command=@JAVA_HOME@/bin/java + +# Java Main class. This class must implement the WrapperListener interface +# or guarantee that the WrapperManager class is initialized. Helper +# classes are provided to do this for you. See the Integration section +# of the documentation for details. +wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp + +# Java Classpath (include wrapper.jar) Add class path elements as +# needed starting from 1 +wrapper.java.classpath.1=../lib/wrapper.jar +wrapper.java.classpath.2=./run.jar + +# Java Library Path (location of Wrapper.DLL or libwrapper.so) +wrapper.java.library.path.1=../lib + +# Java Additional Parameters +wrapper.java.additional.1=-Dprogram.name=run.bat + +# Initial Java Heap Size (in MB) +wrapper.java.initmemory=256 + +# Maximum Java Heap Size (in MB) +wrapper.java.maxmemory=512 + +# Application parameters. Add parameters as needed starting from 1 +wrapper.app.parameter.1=org.jboss.Main + +#******************************************************************** +# Wrapper Logging Properties +#******************************************************************** +# Format of output for the console. (See docs for formats) +wrapper.console.format=PM + +# Log Level for console output. (See docs for log levels) +wrapper.console.loglevel=ERROR + +# Log file to use for wrapper output logging. +wrapper.logfile=../logs/wrapper.log + +# Format of output for the log file. (See docs for formats) +wrapper.logfile.format=LPTM + +# Log Level for log file output. (See docs for log levels) +wrapper.logfile.loglevel=ERROR + +# Maximum size that the log file will be allowed to grow to before +# the log is rolled. Size is specified in bytes. The default value +# of 0, disables log rolling. May abbreviate with the 'k' (kb) or +# 'm' (mb) suffix. For example: 10m = 10 megabytes. +wrapper.logfile.maxsize=5m + +# Maximum number of rolled log files which will be allowed before old +# files are deleted. The default value of 0 implies no limit. +wrapper.logfile.maxfiles=2 + +# Log Level for sys/event log output. (See docs for log levels) +wrapper.syslog.loglevel=NONE + +#******************************************************************** +# Wrapper Windows Properties +#******************************************************************** +# Title to use when running as a console +wrapper.console.title=LAMSv2 + +#******************************************************************** +# Wrapper Windows NT/2000/XP Service Properties +#******************************************************************** +# WARNING - Do not modify any of these properties when an application +# using this configuration file has been installed as a service. +# Please uninstall the service before modifying this section. The +# service can then be reinstalled. + +# Name of the service +wrapper.ntservice.name=LAMSv2 + +# Display name of the service +wrapper.ntservice.displayname=LAMSv2 + +# Description of the service +wrapper.ntservice.description=LAMSv2 + +# Service dependencies. Add dependencies as needed starting from 1 +wrapper.ntservice.dependency.1= + +# Mode in which the service is installed. AUTO_START or DEMAND_START +wrapper.ntservice.starttype=DEMAND_START + +# Allow the service to interact with the desktop. +wrapper.ntservice.interactive=false + Index: win_installer/utils/documents/backup.txt =================================================================== diff -u --- win_installer/utils/documents/backup.txt (revision 0) +++ win_installer/utils/documents/backup.txt (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,3 @@ +Please go to: +http://wiki.lamsfoundation.org/display/lamsdocs/Revert+To+Windows+Updater+Backup +For instructions on how to revert to an older version from a backup \ No newline at end of file Index: win_installer/utils/documents/license.txt =================================================================== diff -u --- win_installer/utils/documents/license.txt (revision 0) +++ win_installer/utils/documents/license.txt (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,2606 @@ +LAMS 2.0.4 is released under the GPL license detailed below. This package +also includes other libraries/packages, whose respective licenses are +detailed below. + +Library/Package License +-------------------------------------------------------------------------------- +wrapper.jar Silver Egg Techology License (see license-wrapper.txt) +antlr.jar Antlr 3 License +axis-ant.jar Apache License 2.0 +axis.jar Apache License 2.0 +cglib-nodep-2.1_2.jar Apache License 2.0 +cglib_jboss404GA.jar Apache License 2.0 +commons-beanutils.jar Apache License 2.0 +commons-codec-1.3.jar Apache License 2.0 +commons-collections.jar Apache License 2.0 +commons-digester.jar Apache License 2.0 +commons-discovery-0.2.jar Apache Software License 1.1 +commons-fileupload.jar Apache Software License 1.1 +commons-lang-2.0.jar Apache Software License 1.1 +commons-logging.jar Apache License 2.0 +commons-validator.jar Apache License 2.0 +FCKeditor-2.3.jar CDL Closed Distribution License +gnujaxp.jar GNU General Public License +hibernate3.jar GNU General Public License +jakarta-oro.jar Apache Software License 1.1 +jaxrpc.jar CDDL (Common Development and + Distribution License 1.0) +JBoss 4.0.2 GNU Lesser General Public Licence +jboss-cache.jar GNU Lesser General Public Licence +jboss-common.jar GNU Lesser General Public Licence +jboss-jmx.jar GNU Lesser General Public Licence +jboss-system.jar GNU Lesser General Public Licence +jcommon-1.0.0.jar GNU Lesser General Public Licence +jdom.jar Jdom Jar License +jfreechart-1.0.1.jar GNU Lesser General Public Licence +jgroups.jar GNU Lesser General Public Licence +jmock-2003-03-19.jar jMock Project License +joda-time-0.98.jar Joda Software License 1.0 +jsMath Apache License 2.0 +jstl.jar JSTL License 1.1 +log4j-1.2.13.jar Apache Software License 1.1 +mysql-connector- (CDDL Common Development and + java-3.1.12-bin-jar Distribution License 1.0) +odmg-3.0.jar ODMG 2.0 +poi-2.5.1-final Apache Software License 1.1 + -20040804.jar +quartz.jar Apache License 2.0 +saaj.jar (CDDL Common Development and + Distribution License 1.0) +smack.jar Apache License 2.0 +smackx.jar Apache License 2.0 +spring.jar Apache License 2.0 +standard.jar Apache License 2.0 +struts-el.jar Apache License 2.0 +struts.jar Apache License 2.0 +wddx.jar GNU General Public License +wsdl4j-1.5.1.jar CPL Common Public License 0.5 +xml-writer-0.2.jar XML-Write License +xom-1.0.b3.jar GNU Lesser General Public License +xpp3-1.1.3.4d_b4.jar XPP3 License +xstream-1.1.jar xstream Licanse + +SHARE RECOURCES LIBRARY LICENSES +castor-0.9.5.3-xml.jar Castor License +jdom.jar Jdom Jar License +moonunitsrc.jar Reload License +reload-diva.jar Reload License +reload-editor.jar Reload License +reload-jdom.jar Reload License +reload-moonunit.jar Reload License +xercesImpl.jar Apache Software License 1.1 +xml-apis.jar Apache Software License 1.1 +jaxen-full.jar Jaxen Jar License (The Werken + Company) +sax.jar Public Domain +saxpath.jar Jaxen Jar License (The Werken + Company) +-------------------------------------------------------------------------------- + + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + + + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + + +===================================================== +/* + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2000 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + * Portions of this software are based upon public domain software + * originally written at the National Center for Supercomputing Applications, + * University of Illinois, Urbana-Champaign. + */ + ===================================================== + + + + + ===================================================== + + /* + * Joda Software License, Version 1.0 + * + * + * Copyright (c) 2001-2004 Stephen Colebourne. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Joda project (http://www.joda.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The name "Joda" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact licence@joda.org. + * + * 5. Products derived from this software may not be called "Joda", + * nor may "Joda" appear in their name, without prior written + * permission of the Joda project. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE JODA AUTHORS OR THE PROJECT + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Joda project and was originally + * created by Stephen Colebourne . For more + * information on the Joda project, please see . + */ + + ===================================================== + + + +===================================================== + +Closed Distribution License (CDL) + +Agreement +IMPORTANT - READ CAREFULLY: This End-User License Agreement ("EULA") is a legal +agreement between you (either an individual or a single entity) and FREDERICO +CALDEIRA KNABBEN (the "Owner") covering your use of FCKeditor (the �Software�). +Be sure to read the following agreement before using the Software. +TERMS AND CONDITIONS +1. This EULA uses the GNU Lesser General Public License (�LGPL�) as its base. +Agreeing to this license you are also agreeing to be bound to the LGPL license +terms, limited to the changes defined in this EULA. The terms defined in this +EULA override any term present in the LGPL license that conflicts with the EULA. +2. GRANT OF LICENSE. The Owner grants you the right to use the Software and any +related supplements or add-on components published by the Owner, unless +explicitly specified, on your one specific product (�Product�) with the +following special rights: there is no need to distribute the LGPL license with +the Product and no reference to it have to be done; no references to the +Software have to be done in any file distributed with the Product; the source +code of the Software doesn�t have to be distributed along with the Product; you +can remove any file from the Software when integrating it with the Product. It +is agreed that in exchange for the license set forth herein, you will pay a +one-time license fee of US$750 (Seven Hundred and Fifty U.S. Dollars). +3. LICENSE VALIDITY. This EULA is valid only if the Product is a work that uses +the Software, and doesn�t go in competition with the Software in the +marketplace. Whenever this license looses its validity, the LGPL license takes +its place. +4. RESERVATION OF RIGHTS AND OWNERSHIP. The Owner reserves all rights not +expressly granted to you in this EULA. The Software is protected by copyright +and other intellectual property laws and treaties. The Owner owns the title, +copyright, and other intellectual property rights in the Software. The Software +is licensed, not sold. This EULA does not grant you any rights to trademarks or +service the Software marks. +5. TERMINATION. Without prejudice to any other rights, the Owner may terminate +this EULA if you fail to comply with the terms and conditions of this EULA. In +such event, your right to use this Software and the rights to use the files +produced using the Software by third parties terminates automatically and you +must then destroy all copies of the Software in your possession. +6. WARRANTY. Owner represents and warrants that he has full title and ownership +to the Software and has the authority to grant the license hereunder. To the +best of Owner's knowledge the Software does not infringe upon the intellectual +property rights of any third party and that he did not receive any notice +regarding any alleged infringement thereof. +7. DISCLAIMER OF WARRANTIES. The Software and its related material are provided +�AS IS� and without warranty of any kind and the Owner expressly disclaims all +other warranties, expressed or implied, including, but not limited to, the +implied warranties of merchantability and fitness for a particular purpose. +8. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES. +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT +SHALL THE OWNER BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE, +INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, BUT NOT +LIMITED TO, DAMAGES FOR LOSS OF PROFITS OR CONFIDENTIAL OR OTHER +INFORMATION, FOR BUSINESS INTERRUPTION, FOR PERSONAL INJURY, FOR +LOSS OF PRIVACY, FOR FAILURE TO MEET ANY DUTY INCLUDING OF GOOD +FAITH OR OF REASONABLE CARE, FOR NEGLIGENCE, AND FOR ANY OTHER +PECUNIARY OR OTHER LOSS WHATSOEVER) ARISING OUT OF OR IN ANY WAY +RELATED TO THE USE OF OR INABILITY TO USE THE SOFTWARE, THE +PROVISION OF OR FAILURE TO PROVIDE SUPPORT OR OTHER SERVICES, +INFORMATON, SOFTWARE, AND RELATED CONTENT THROUGH THE SOFTWARE +OR OTHERWISE ARISING OUT OF THE USE OF THE SOFTWARE, OR OTHERWISE +UNDER OR IN CONNECTION WITH ANY PROVISION OF THIS EULA, EVEN IN THE +EVENT OF THE FAULT, TORT (INCLUDING NEGLIGENCE), MISREPRESENTATION, +STRICT LIABILITY, BREACH OF CONTRACT, AND EVEN IF THE OWNER HAS BEEN +ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +9. LIMITATION OF LIABILITY. In no vent shall the Owner's liability exceed the +license fee paid, if any. +END OF TERMS AND CONDITIONS + +===================================================== + + + +===================================================== + +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 + + 1. Definitions. + 1.1. "Contributor" means each individual or entity that + creates or contributes to the creation of Modifications. + 1.2. "Contributor Version" means the combination of the + Original Software, prior Modifications used by a + Contributor (if any), and the Modifications made by that + particular Contributor. + 1.3. "Covered Software" means (a) the Original Software, or + (b) Modifications, or (c) the combination of files + containing Original Software with files containing + Modifications, in each case including portions thereof. + 1.4. "Executable" means the Covered Software in any form + other than Source Code. + 1.5. "Initial Developer" means the individual or entity + that first makes Original Software available under this + License. + 1.6. "Larger Work" means a work which combines Covered + Software or portions thereof with code not governed by the + terms of this License. + 1.7. "License" means this document. + 1.8. "Licensable" means having the right to grant, to the + maximum extent possible, whether at the time of the initial + grant or subsequently acquired, any and all of the rights + conveyed herein. + 1.9. "Modifications" means the Source Code and Executable + form of any of the following: + A. Any file that results from an addition to, + deletion from or modification of the contents of a + file containing Original Software or previous + Modifications; + B. Any new file that contains any part of the + Original Software or previous Modification; or + C. Any new file that is contributed or otherwise made + available under the terms of this License. + 1.10. "Original Software" means the Source Code and + Executable form of computer software code that is + originally released under this License. + 1.11. "Patent Claims" means any patent claim(s), now owned + or hereafter acquired, including without limitation, + method, process, and apparatus claims, in any patent + Licensable by grantor. + 1.12. "Source Code" means (a) the common form of computer + software code in which modifications are made and (b) + associated documentation included in or with such code. + 1.13. "You" (or "Your") means an individual or a legal + entity exercising rights under, and complying with all of + the terms of, this License. For legal entities, "You" + includes any entity which controls, is controlled by, or is + under common control with You. For purposes of this + definition, "control" means (a) the power, direct or + indirect, to cause the direction or management of such + entity, whether by contract or otherwise, or (b) ownership + of more than fifty percent (50%) of the outstanding shares + or beneficial ownership of such entity. + 2. License Grants. + 2.1. The Initial Developer Grant. + Conditioned upon Your compliance with Section 3.1 below and + subject to third party intellectual property claims, the + Initial Developer hereby grants You a world-wide, + royalty-free, non-exclusive license: + (a) under intellectual property rights (other than + patent or trademark) Licensable by Initial Developer, + to use, reproduce, modify, display, perform, + sublicense and distribute the Original Software (or + portions thereof), with or without Modifications, + and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, + using or selling of Original Software, to make, have + made, use, practice, sell, and offer for sale, and/or + otherwise dispose of the Original Software (or + portions thereof). + (c) The licenses granted in Sections 2.1(a) and (b) + are effective on the date Initial Developer first + distributes or otherwise makes the Original Software + available to a third party under the terms of this + License. + (d) Notwithstanding Section 2.1(b) above, no patent + license is granted: (1) for code that You delete from + the Original Software, or (2) for infringements + caused by: (i) the modification of the Original + Software, or (ii) the combination of the Original + Software with other software or devices. + 2.2. Contributor Grant. + Conditioned upon Your compliance with Section 3.1 below and + subject to third party intellectual property claims, each + Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + (a) under intellectual property rights (other than + patent or trademark) Licensable by Contributor to + use, reproduce, modify, display, perform, sublicense + and distribute the Modifications created by such + Contributor (or portions thereof), either on an + unmodified basis, with other Modifications, as + Covered Software and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, + using, or selling of Modifications made by that + Contributor either alone and/or in combination with + its Contributor Version (or portions of such + combination), to make, use, sell, offer for sale, + have made, and/or otherwise dispose of: (1) + Modifications made by that Contributor (or portions + thereof); and (2) the combination of Modifications + made by that Contributor with its Contributor Version + (or portions of such combination). + (c) The licenses granted in Sections 2.2(a) and + 2.2(b) are effective on the date Contributor first + distributes or otherwise makes the Modifications + available to a third party. + (d) Notwithstanding Section 2.2(b) above, no patent + license is granted: (1) for any code that Contributor + has deleted from the Contributor Version; (2) for + infringements caused by: (i) third party + modifications of Contributor Version, or (ii) the + combination of Modifications made by that Contributor + with other software (except as part of the + Contributor Version) or other devices; or (3) under + Patent Claims infringed by Covered Software in the + absence of Modifications made by that Contributor. + 3. Distribution Obligations. + 3.1. Availability of Source Code. + Any Covered Software that You distribute or otherwise make + available in Executable form must also be made available in + Source Code form and that Source Code form must be + distributed only under the terms of this License. You must + include a copy of this License with every copy of the + Source Code form of the Covered Software You distribute or + otherwise make available. You must inform recipients of any + such Covered Software in Executable form as to how they can + obtain such Covered Software in Source Code form in a + reasonable manner on or through a medium customarily used + for software exchange. + 3.2. Modifications. + The Modifications that You create or to which You + contribute are governed by the terms of this License. You + represent that You believe Your Modifications are Your + original creation(s) and/or You have sufficient rights to + grant the rights conveyed by this License. + 3.3. Required Notices. + You must include a notice in each of Your Modifications + that identifies You as the Contributor of the Modification. + You may not remove or alter any copyright, patent or + trademark notices contained within the Covered Software, or + any notices of licensing or any descriptive text giving + attribution to any Contributor or the Initial Developer. + 3.4. Application of Additional Terms. + You may not offer or impose any terms on any Covered + Software in Source Code form that alters or restricts the + applicable version of this License or the recipients� + rights hereunder. You may choose to offer, and to charge a + fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Software. + However, you may do so only on Your own behalf, and not on + behalf of the Initial Developer or any Contributor. You + must make it absolutely clear that any such warranty, + support, indemnity or liability obligation is offered by + You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred + by the Initial Developer or such Contributor as a result of + warranty, support, indemnity or liability terms You offer. + 3.5. Distribution of Executable Versions. + You may distribute the Executable form of the Covered + Software under the terms of this License or under the terms + of a license of Your choice, which may contain terms + different from this License, provided that You are in + compliance with the terms of this License and that the + license for the Executable form does not attempt to limit + or alter the recipient�s rights in the Source Code form + from the rights set forth in this License. If You + distribute the Covered Software in Executable form under a + different license, You must make it absolutely clear that + any terms which differ from this License are offered by You + alone, not by the Initial Developer or Contributor. You + hereby agree to indemnify the Initial Developer and every + Contributor for any liability incurred by the Initial + Developer or such Contributor as a result of any such terms + You offer. + 3.6. Larger Works. + You may create a Larger Work by combining Covered Software + with other code not governed by the terms of this License + and distribute the Larger Work as a single product. In such + a case, You must make sure the requirements of this License + are fulfilled for the Covered Software. + 4. Versions of the License. + 4.1. New Versions. + Sun Microsystems, Inc. is the initial license steward and + may publish revised and/or new versions of this License + from time to time. Each version will be given a + distinguishing version number. Except as provided in + Section 4.3, no one other than the license steward has the + right to modify this License. + 4.2. Effect of New Versions. + You may always continue to use, distribute or otherwise + make the Covered Software available under the terms of the + version of the License under which You originally received + the Covered Software. If the Initial Developer includes a + notice in the Original Software prohibiting it from being + distributed or otherwise made available under any + subsequent version of the License, You must distribute and + make the Covered Software available under the terms of the + version of the License under which You originally received + the Covered Software. Otherwise, You may also choose to + use, distribute or otherwise make the Covered Software + available under the terms of any subsequent version of the + License published by the license steward. + 4.3. Modified Versions. + When You are an Initial Developer and You want to create a + new license for Your Original Software, You may create and + use a modified version of this License if You: (a) rename + the license and remove any references to the name of the + license steward (except to note that the license differs + from this License); and (b) otherwise make it clear that + the license contains terms which differ from this License. + 5. DISCLAIMER OF WARRANTY. + COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" + BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED + SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR + PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND + PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY + COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE + INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF + ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF + WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS + DISCLAIMER. + 6. TERMINATION. + 6.1. This License and the rights granted hereunder will + terminate automatically if You fail to comply with terms + herein and fail to cure such breach within 30 days of + becoming aware of the breach. Provisions which, by their + nature, must remain in effect beyond the termination of + this License shall survive. + 6.2. If You assert a patent infringement claim (excluding + declaratory judgment actions) against Initial Developer or + a Contributor (the Initial Developer or Contributor against + whom You assert such claim is referred to as "Participant") + alleging that the Participant Software (meaning the + Contributor Version where the Participant is a Contributor + or the Original Software where the Participant is the + Initial Developer) directly or indirectly infringes any + patent, then any and all rights granted directly or + indirectly to You by such Participant, the Initial + Developer (if the Initial Developer is not the Participant) + and all Contributors under Sections 2.1 and/or 2.2 of this + License shall, upon 60 days notice from Participant + terminate prospectively and automatically at the expiration + of such 60 day notice period, unless if within such 60 day + period You withdraw Your claim with respect to the + Participant Software against such Participant either + unilaterally or pursuant to a written agreement with + Participant. + 6.3. In the event of termination under Sections 6.1 or 6.2 + above, all end user licenses that have been validly granted + by You or any distributor hereunder prior to termination + (excluding licenses granted to You by any distributor) + shall survive termination. + 7. LIMITATION OF LIABILITY. + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE + INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF + COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE + LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK + STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL + INJURY RESULTING FROM SUCH PARTY�S NEGLIGENCE TO THE EXTENT + APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO + NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR + CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT + APPLY TO YOU. + 8. U.S. GOVERNMENT END USERS. + The Covered Software is a "commercial item, as that term is + defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial + computer software (as that term is defined at 48 C.F.R. � + 252.227-7014(a)(1)) and "commercial computer software + documentation" as such terms are used in 48 C.F.R. 12.212 (Sept. + 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 + through 227.7202-4 (June 1995), all U.S. Government End Users + acquire Covered Software with only those rights set forth herein. + This U.S. Government Rights clause is in lieu of, and supersedes, + any other FAR, DFAR, or other clause or provision that addresses + Government rights in computer software under this License. + 9. MISCELLANEOUS. + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the + extent necessary to make it enforceable. This License shall be + governed by the law of the jurisdiction specified in a notice + contained within the Original Software (except to the extent + applicable law, if any, provides otherwise), excluding such + jurisdiction�s conflict-of-law provisions. Any litigation + relating to this License shall be subject to the jurisdiction of + the courts located in the jurisdiction and venue specified in a + notice contained within the Original Software, with the losing + party responsible for costs, including, without limitation, court + costs and reasonable attorneys� fees and expenses. The + application of the United Nations Convention on Contracts for the + International Sale of Goods is expressly excluded. Any law or + regulation which provides that the language of a contract shall + be construed against the drafter shall not apply to this License. + You agree that You alone are responsible for compliance with the + United States export administration regulations (and the export + control laws and regulation of any other countries) when You use, + distribute or otherwise make available any Covered Software. + 10. RESPONSIBILITY FOR CLAIMS. + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or + indirectly, out of its utilization of rights under this License + and You agree to work with Initial Developer and Contributors to + distribute such responsibility on an equitable basis. Nothing + herein is intended or shall be deemed to constitute any admission + of liability. +===================================================== + + + +===================================================== + +ANTLR 3 License + +[The BSD License] +Copyright (c) 2003-2006, Terence Parr +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the author nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================== + + +===================================================== +JDOM JAR LICENSE + +$Id$ + +Copyright (C) 2000-2004 Jason Hunter & Brett McLaughlin. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright +notice, this list of conditions, and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions, and the disclaimer that follows +these conditions in the documentation and/or other materials +provided with the distribution. + +3. The name "JDOM" must not be used to endorse or promote products +derived from this software without prior written permission. For +written permission, please contact . + +4. Products derived from this software may not be called "JDOM", nor +may "JDOM" appear in their name, without prior written permission +from the JDOM Project Management . + +In addition, we request (but do not require) that you include in the +end-user documentation provided with the redistribution and/or in the +software itself an acknowledgement equivalent to the following: +"This product includes software developed by the + JDOM Project (http://www.jdom.org/)." +Alternatively, the acknowledgment may be graphical using the logos +available at http://www.jdom.org/images/logos. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +This software consists of voluntary contributions made by many +individuals on behalf of the JDOM Project and was originally +created by Jason Hunter and +Brett McLaughlin . For more information +on the JDOM Project, please see . + +===================================================== + + +===================================================== + +jMock Project License + +Copyright (c) 2000-2003, jMock.org +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. Redistributions in binary form +must reproduce the above copyright notice, this list of conditions and the +following disclaimer in the documentation and/or other materials provided with +the distribution. + +Neither the name of jMock nor the names of its contributors may be used to +endorse or promote products derived from this software without specific prior +written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================== + + +===================================================== + +JSTL License + +JavaServer Pages(TM) Standard Tag Library (JSTL) Specification 1.1 Maintenance +Release, Download +In order to obtain JavaServer Pages(TM) Standard Tag Library (JSTL) +Specification 1.1 Maintenance Release you must agree to the software +license below: + +SUN MICROSYSTEMS, INC. IS WILLING TO LICENSE THIS +SPECIFICATION TO YOU ONLY UPON THE CONDITION THAT YOU +ACCEPT ALL OF THE TERMS CONTAINED IN THIS LICENSE AGREEMENT +("AGREEMENT"). PLEASE READ THE TERMS AND CONDITIONS OF THIS +LICENSE CAREFULLY. BY DOWNLOADING THIS SPECIFICATION, YOU +ACCEPT THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT. +IF YOU ARE NOT WILLING TO BE BOUND BY ITS TERMS, SELECT THE +"DECLINE" BUTTON AT THE BOTTOM OF THIS PAGE AND THE +DOWNLOADING PROCESS WILL NOT CONTINUE. + +JavaServer Pages(TM) Standard Tag Library (JSTL) +Specification ("Specification") Version: 1.1 Status: FCS, +Maintenance Release Release: November 24, 2003 + +Copyright 2003 Sun Microsystems, Inc. 4150 Network Circle, +Santa Clara, California 95054, U.S.A All rights reserved. + +NOTICE; LIMITED LICENSE GRANTS Sun Microsystems, Inc. +("Sun") hereby grants you a fully-paid, non-exclusive, +non-transferable, worldwide, limited license (without the +right to sublicense), under the Sun's applicable +intellectual property rights to view, download, use and +reproduce the Specification only for the purpose of +internal evaluation, which shall be understood to include +developing applications intended to run on an +implementation of the Specification provided that such +applications do not themselves implement any portion(s) of +the Specification. Sun also grants you a perpetual, +non-exclusive, worldwide, fully paid-up, royalty free, +limited license (without the right to sublicense) under any +applicable copyrights or patent rights it may have in the +Specification to create and/or distribute an Independent +Implementation of the Specification that: (i) fully +implements the Spec(s) including all its required +interfaces and functionality; (ii) does not modify, subset, +superset or otherwise extend the Licensor Name Space, or +include any public or protected packages, classes, Java +interfaces, fields or methods within the Licensor Name +Space other than those required/authorized by the +Specification or Specifications being implemented; and +(iii) passes the TCK (including satisfying the requirements +of the applicable TCK Users Guide) for such Specification. +The foregoing license is expressly conditioned on your not +acting outside its scope. No license is granted hereunder +for any other purpose. You need not include limitations +(i)-(iii) from the previous paragraph or any other +particular "pass through" requirements in any license You +grant concerning the use of your Independent Implementation +or products derived from it. However, except with respect +to implementations of the Specification (and products +derived from them) that satisfy limitations (i)-(iii) from +the previous paragraph, You may neither: (a) grant or +otherwise pass through to your licensees any licenses under +Sun's applicable intellectual property rights; nor (b) +authorize your licensees to make any claims concerning +their implementation's compliance with the Spec in +question. + +For the purposes of this Agreement: "Independent +Implementation" shall mean an implementation of the +Specification that neither derives from any of Sun's source +code or binary code materials nor, except with an +appropriate and separate license from Sun, includes any of +Sun's source code or binary code materials; and "Licensor +Name Space" shall mean the public class or interface +declarations whose names begin with "java", "javax", +"com.sun" or their equivalents in any subsequent naming +convention adopted by Sun through the Java Community +Process, or any recognized successors or replacements +thereof. + +This Agreement will terminate immediately without notice +from Sun if you fail to comply with any material provision +of or act outside the scope of the licenses granted above. + +TRADEMARKS No right, title, or interest in or to any +trademarks, service marks, or trade names of Sun or Sun's +licensors is granted hereunder. Sun, Sun Microsystems, the +Sun logo, Java, the Java Coffee Cup logo, J2EE, and +JavaServer Pages are trademarks or registered trademarks of +Sun Microsystems, Inc. in the U.S. and other countries. + +DISCLAIMER OF WARRANTIES THE SPECIFICATION IS PROVIDED "AS +IS". SUN MAKES NO REPRESENTATIONS OR WARRANTIES, EITHER +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE, OR NON-INFRINGEMENT, THAT THE CONTENTS OF THE +SPECIFICATION ARE SUITABLE FOR ANY PURPOSE OR THAT ANY +PRACTICE OR IMPLEMENTATION OF SUCH CONTENTS WILL NOT +INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADE SECRETS +OR OTHER RIGHTS. This document does not represent any +commitment to release or implement any portion of the +Specification in any product. THE SPECIFICATION COULD +INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. +CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION THEREIN; +THESE CHANGES WILL BE INCORPORATED INTO NEW VERSIONS OF THE +SPECIFICATION, IF ANY. SUN MAY MAKE IMPROVEMENTS AND/OR +CHANGES TO THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED +IN THE SPECIFICATION AT ANY TIME. Any use of such changes +in the Specification will be governed by the then-current +license for the applicable version of the Specification. + +LIMITATION OF LIABILITY TO THE EXTENT NOT PROHIBITED BY +LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR +ANY DAMAGES, INCLUDING WITHOUT LIMITATION, LOST REVENUE, +PROFITS OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, +INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND +REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR +RELATED TO ANY FURNISHING, PRACTICING, MODIFYING OR ANY USE +OF THE SPECIFICATION, EVEN IF SUN AND/OR ITS LICENSORS HAVE +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You will +indemnify, hold harmless, and defend Sun and its licensors +from any claims arising or resulting from: (i) your use of +the Specification; (ii) the use or distribution of your +Java application, applet and/or clean room implementation; +and/or (iii) any claims that later versions or releases of +any Specification furnished to you are incompatible with +the Specification provided to you under this license. + +RESTRICTED RIGHTS LEGEND U.S. Government: If this +Specification is being acquired by or on behalf of the U.S. +Government or by a U.S. Government prime contractor or +subcontractor (at any tier), then the Government's rights +in the Specification and accompanying documentation shall +be only as set forth in this license; this is in accordance +with 48 C.F.R. 227.7201 through 227.7202-4 (for Department +of Defense (DoD) acquisitions) and with 48 C.F.R. 2.101 and +12.212 (for non-DoD acquisitions). + +REPORT You may wish to report any ambiguities, +inconsistencies or inaccuracies you may find in connection +with your use of the Specification ("Feedback"). To the +extent that you provide Sun with any Feedback, you hereby: +(i) agree that such Feedback is provided on a +non-proprietary and non-confidential basis, and (ii) grant +Sun a perpetual, non-exclusive, worldwide, fully paid-up, +irrevocable license, with the right to sublicense through +multiple levels of sublicensees, to incorporate, disclose, +and use without limitation the Feedback for any purpose +related to the Specification and future versions, +implementations, and test suites thereof. + +===================================================== + + + +===================================================== + +ODMG 2.0 ODL Metadata and OML Interfaces for Java (JDK 1.2) + +Copyright (c) 1999 E. Wray Johnson. All rights reserved.Developed for use and +distribution by the Object Data Management Group (ODMG).Please contact the +author at ejohnson@carolina.rr.com for issues pertaining to the use of this +software. Do not contact the ODMG about any questions or issues that may arise +regarding the use of this software. + +These interfaces were developed from the specifications in the Object Database +Standard: ODMG 2.0book. Please refer to the book for a complete description of +the interfaces and their intended use.You can obtain the book through a +bookstore or directly from the publishers.Every effort has been made by the +author to adhere strictly to the specification, however common Java naming +conventions were substituted for consistency and clarity for Java developers. +This software is currently being upgraded to adhere to the ODMG 3.0 standard, +so please check this site for future updates. + + +LICENSE AGREEMENT +Redistribution of this software is permitted provided that the following +conditions are met: + +1. Redistributions of source or binary code formats must retain the above +copyright notice. +2. Redistribution in any product and all advertising materials mentioning +features or use of this software must display the following acknowledgment: +"This product includes +copyrighted software developed by E. Wray Johnson for use and distribution by +the Object Data Management Group (http://www.odmg.org/)." + +NO-NONSENSE DISCLAIMER +THIS SOFTWARE IS FREE AND PROVIDED "AS-IS" BY THE AUTHOR E. WRAY JOHNSON WHO +ASSUMES LIABILITY TO THE EXTENT OF THE AMOUNT THAT IS HEREBY BEING CHARGED FOR +THE SOFTWARE. + +===================================================== + + +===================================================== + + +Common Public License Version 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC +LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM +CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial code and +documentation distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + + i) changes to the Program, and + + ii) additions to the Program; + + where such changes and/or additions to the Program originate from and are +distributed by that particular Contributor. A Contribution 'originates' from a +Contributor if it was added to the Program by such Contributor itself or anyone +acting on such Contributor's behalf. Contributions do not include additions to +the Program which: (i) are separate modules of software distributed in +conjunction with the Program under their own license agreement, and (ii) are not +derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor which are +necessarily infringed by the use or sale of its Contribution alone or when +combined with the Program. + +"Program" means the Contributions distributed in accordance with this Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, +including all Contributors. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free copyright license to +reproduce, prepare derivative works of, publicly display, publicly perform, +distribute and sublicense the Contribution of such Contributor, if any, and such +derivative works, in source code and object code form. + + b) Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed +Patents to make, use, sell, offer to sell, import and otherwise transfer the +Contribution of such Contributor, if any, in source code and object code form. +This patent license shall apply to the combination of the Contribution and the +Program if, at the time the Contribution is added by the Contributor, such +addition of the Contribution causes such combination to be covered by the +Licensed Patents. The patent license shall not apply to any other combinations +which include the Contribution. No hardware per se is licensed hereunder. + + c) Recipient understands that although each Contributor grants the licenses +to its Contributions set forth herein, no assurances are provided by any +Contributor that the Program does not infringe the patent or other intellectual +property rights of any other entity. Each Contributor disclaims any liability to +Recipient for claims brought by any other entity based on infringement of +intellectual property rights or otherwise. As a condition to exercising the +rights and licenses granted hereunder, each Recipient hereby assumes sole +responsibility to secure any other intellectual property rights needed, if any. +For example, if a third party patent license is required to allow Recipient to +distribute the Program, it is Recipient's responsibility to acquire that license +before distributing the Program. + + d) Each Contributor represents that to its knowledge it has sufficient +copyright rights in its Contribution, if any, to grant the copyright license set +forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under its +own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + + b) its license agreement: + + i) effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title and +non-infringement, and implied warranties or conditions of merchantability and +fitness for a particular purpose; + + ii) effectively excludes on behalf of all Contributors all liability for +damages, including direct, indirect, special, incidental and consequential +damages, such as lost profits; + + iii) states that any provisions which differ from this Agreement are offered +by that Contributor alone and not by any other party; and + + iv) states that source code for the Program is available from such +Contributor, and informs licensees how to obtain it in a reasonable manner on or +through a medium customarily used for software exchange. + +When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + + b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained within the +Program. + +Each Contributor must identify itself as the originator of its Contribution, if +any, in a manner that reasonably allows subsequent Recipients to identify the +originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with +respect to end users, business partners and the like. While this license is +intended to facilitate the commercial use of the Program, the Contributor who +includes the Program in a commercial product offering should do so in a manner +which does not create potential liability for other Contributors. Therefore, if +a Contributor includes the Program in a commercial product offering, such +Contributor ("Commercial Contributor") hereby agrees to defend and indemnify +every other Contributor ("Indemnified Contributor") against any losses, damages +and costs (collectively "Losses") arising from claims, lawsuits and other legal +actions brought by a third party against the Indemnified Contributor to the +extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor to +control, and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may participate in +any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial product +offering, Product X. That Contributor is then a Commercial Contributor. If that +Commercial Contributor then makes performance claims, or offers warranties +related to Product X, those performance claims and warranties are such +Commercial Contributor's responsibility alone. Under this section, the +Commercial Contributor would have to defend claims against the other +Contributors related to those performance claims and warranties, and if a court +requires any other Contributor to pay any damages as a result, the Commercial +Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, +NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each +Recipient is solely responsible for determining the appropriateness of using and +distributing the Program and assumes all risks associated with its exercise of +rights under this Agreement, including but not limited to the risks and costs of +program errors, compliance with applicable laws, damage to or loss of data, +programs or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY +CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS +GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under applicable +law, it shall not affect the validity or enforceability of the remainder of the +terms of this Agreement, and without further action by the parties hereto, such +provision shall be reformed to the minimum extent necessary to make such +provision valid and enforceable. + +If Recipient institutes patent litigation against a Contributor with respect to +a patent applicable to software (including a cross-claim or counterclaim in a +lawsuit), then any patent licenses granted by that Contributor to such Recipient +under this Agreement shall terminate as of the date such litigation is filed. In +addition, if Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the Program +itself (excluding combinations of the Program with other software or hardware) +infringes such Recipient's patent(s), then such Recipient's rights granted under +Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to +comply with any of the material terms or conditions of this Agreement and does +not cure such failure in a reasonable period of time after becoming aware of +such noncompliance. If all Recipient's rights under this Agreement terminate, +Recipient agrees to cease use and distribution of the Program as soon as +reasonably practicable. However, Recipient's obligations under this Agreement +and any licenses granted by Recipient relating to the Program shall continue and +survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in +order to avoid inconsistency the Agreement is copyrighted and may only be +modified in the following manner. The Agreement Steward reserves the right to +publish new versions (including revisions) of this Agreement from time to time. +No one other than the Agreement Steward has the right to modify this Agreement. +IBM is the initial Agreement Steward. IBM may assign the responsibility to serve +as the Agreement Steward to a suitable separate entity. Each new version of the +Agreement will be given a distinguishing version number. The Program (including +Contributions) may always be distributed subject to the version of the Agreement +under which it was received. In addition, after a new version of the Agreement +is published, Contributor may elect to distribute the Program (including its +Contributions) under the new version. Except as expressly stated in Sections +2(a) and 2(b) above, Recipient receives no rights or licenses to the +intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the +intellectual property laws of the United States of America. No party to this +Agreement will bring a legal action under this Agreement more than one year +after the cause of action arose. Each party waives its rights to a jury trial in +any resulting litigation. + +===================================================== + +XStream License + +Copyright (c) 2003-2006, Joe Walnes +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list +of conditions and the following disclaimer. Redistributions in binary form must +reproduce the above copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided with the +distribution. + +Neither the name of XStream nor the names of its contributors may be used to +endorse or promote products derived from this software without specific prior +written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================== + + + +===================================================== + +XPP3 License + +Indiana University Extreme! Lab Software License + +Version 1.1.1 + +Copyright (c) 2002 Extreme! Lab, Indiana University. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + +3. The end-user documentation included with the redistribution, if any, + must include the following acknowledgment: + + "This product includes software developed by the Indiana University + Extreme! Lab (http://www.extreme.indiana.edu/)." + +Alternately, this acknowledgment may appear in the software itself, +if and wherever such third-party acknowledgments normally appear. + +4. The names "Indiana Univeristy" and "Indiana Univeristy Extreme! Lab" +must not be used to endorse or promote products derived from this +software without prior written permission. For written permission, +please contact http://www.extreme.indiana.edu/. + +5. Products derived from this software may not use "Indiana Univeristy" +name nor may "Indiana Univeristy" appear in their name, without prior +written permission of the Indiana University. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHORS, COPYRIGHT HOLDERS OR ITS CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================== + + + +===================================================== + +/* XML Writer license + * + * Copyright (c) 2003, Henri Yandell + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the + * following conditions are met: + * + * + Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * + Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * + Neither the name of XmlWriter nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +===================================================== + + +ANTLR LICENSE + +SOFTWARE RIGHTS + +ANTLR 1989-2005 Developed by Terence Parr +Partially supported by University of San Francisco & jGuru.com + +We reserve no legal rights to the ANTLR--it is fully in the +public domain. An individual or company may do whatever +they wish with source code distributed with ANTLR or the +code generated by ANTLR, including the incorporation of +ANTLR, or its output, into commerical software. + +We encourage users to develop software with ANTLR. However, +we do ask that credit is given to us for developing +ANTLR. By "credit", we mean that if you use ANTLR or +incorporate any source code into one of your programs +(commercial product, research project, or otherwise) that +you acknowledge this fact somewhere in the documentation, +research report, etc... If you like ANTLR and have +developed a nice tool with the output, please mention that +you developed it using ANTLR. In addition, we ask that the +headers remain intact in our source code. As long as these +guidelines are kept, we expect to continue enhancing this +system and expect to make other tools available as they are +completed. + +The primary ANTLR guy: + +Terence Parr +parrt@cs.usfca.edu +parrt@antlr.org + +======================================================== + +CASTOR-LICENSE + +Copyright 2000-2002 (C) Intalio Inc. All Rights Reserved. + +Redistribution and use of this software and associated documentation +("Software"), with or without modification, are permitted provided +that the following conditions are met: + +1. Redistributions of source code must retain copyright statements + and notices. Redistributions must also contain a copy of this + document. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. The name "ExoLab" must not be used to endorse or promote products + derived from this Software without prior written permission of + Intalio Inc. For written permission, please contact info@exolab.org. + +4. Products derived from this Software may not be called "Castor" + nor may "Castor" appear in their names without prior written + permission of Intalio Inc. Exolab, Castor and Intalio are + trademarks of Intalio Inc. + +5. Due credit should be given to the ExoLab Project + (http://www.exolab.org/). + +THIS SOFTWARE IS PROVIDED BY INTALIO AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTALIO OR ITS +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +======================================================== + +Jaxen License + + Copyright 2003-2006 The Werken Company. All Rights Reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the Jaxen Project nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +======================================================== + +Jdom License + +Copyright (C) 2000-2002 Brett McLaughlin & Jason Hunter. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the disclaimer that follows + these conditions in the documentation and/or other materials + provided with the distribution. + + 3. The name "JDOM" must not be used to endorse or promote products + derived from this software without prior written permission. For + written permission, please contact license@jdom.org. + + 4. Products derived from this software may not be called "JDOM", nor + may "JDOM" appear in their name, without prior written permission + from the JDOM Project Management (pm@jdom.org). + + In addition, we request (but do not require) that you include in the + end-user documentation provided with the redistribution and/or in the + software itself an acknowledgement equivalent to the following: + "This product includes software developed by the + JDOM Project (http://www.jdom.org/)." + Alternatively, the acknowledgment may be graphical using the logos + available at http://www.jdom.org/images/logos. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + This software consists of voluntary contributions made by many + individuals on behalf of the JDOM Project and was originally + created by Brett McLaughlin and + Jason Hunter . For more information on the + JDOM Project, please see . + + ======================================================== + + Reload License + +RELOAD Tools and Libraries + +Copyright (c) 2002-2004 Oleg Liber, Bill Olivier, Phillip Beauvoir + +This licence covers: + +The Reload "jdom" library +The Reload "diva" library +The Reload "dweezil" library +The Reload "jdom" library +The Reload "moonunit" library +The Reload "xindice" library +The Reload Editor +The Reload SCORM Player +The Reload Schema Viewer Eclipse Plugin + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Project Management Contact: + +Oleg Liber +Bolton Institute of Higher Education +Deane Road +Bolton BL3 5AB +UK + +e-mail: o.liber@bolton.ac.uk + + +Technical Contact: + +Phillip Beauvoir +Bolton Institute of Higher Education +Deane Road +Bolton BL3 5AB +UK + +e-mail: p.beauvoir@bolton.ac.uk + +Web: http://www.reload.ac.uk + + + ======================================================== + + Xerces License + + /* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999-2002 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Xerces" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 1999, International + * Business Machines, Inc., http://www.ibm.com. For more + * information on the Apache Software Foundation, please see + * . + */ + + ======================================================== \ No newline at end of file Index: win_installer/utils/graphics/favicon.ico =================================================================== diff -u Binary files differ Index: win_installer/utils/graphics/header.bmp =================================================================== diff -u Binary files differ Index: win_installer/utils/graphics/lams2.ico =================================================================== diff -u Binary files differ Index: win_installer/utils/src/ant/LanguagePack.xml =================================================================== diff -u --- win_installer/utils/src/ant/LanguagePack.xml (revision 0) +++ win_installer/utils/src/ant/LanguagePack.xml (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,18 @@ + + + + + + + + + + + + \ No newline at end of file Index: win_installer/utils/src/ant/revert.xml =================================================================== diff -u --- win_installer/utils/src/ant/revert.xml (revision 0) +++ win_installer/utils/src/ant/revert.xml (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file Index: win_installer/utils/src/backup-finish.ini =================================================================== diff -u --- win_installer/utils/src/backup-finish.ini (revision 0) +++ win_installer/utils/src/backup-finish.ini (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,17 @@ +[Settings] +NumFields=2 + +[Field 1] +Type=Label +Left=12 +Top=18 +Right=288 +Bottom=65 + +[Field 2] +Type=Label +Left=12 +Top=78 +Right=288 +Bottom=107 +Text=To revert to the backup, follow the instructions listed at: \r\n\r\nhttp://wiki.lamsfoundation.org/display/lamsdocs/Revert+To+Windows+Backup Index: win_installer/utils/src/backup.ini =================================================================== diff -u --- win_installer/utils/src/backup.ini (revision 0) +++ win_installer/utils/src/backup.ini (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,28 @@ +[Settings] +NumFields=3 +CancelShow=0 +BackEnabled=0 +NextButtonText=Run Backup + +[Field 1] +Type=DirRequest +Left=67 +Top=93 +Right=284 +Bottom=103 + +[Field 2] +Type=Label +Left=6 +Top=94 +Right=72 +Bottom=102 +Text=Backup Directory:\r\n\r\nl + +[Field 3] +Type=Label +Left=6 +Top=12 +Right=291 +Bottom=94 +Text="Welcome to the LAMS 2 Backup Utility.\r\n\r\nThis utility will back up your entire LAMS 2 installation and your LAMS database to the directory you specify below.\r\n\r\nYou can restore your installation later by following the instructions at:\r\n\r\nhttp://wiki.lamsfoundation.org/display/lamsdocs/Revert+To+Windows+Backup\r\n" Index: win_installer/utils/src/backup.nsi =================================================================== diff -u --- win_installer/utils/src/backup.nsi (revision 0) +++ win_installer/utils/src/backup.nsi (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,281 @@ +/**************************************************************** + * Copyright (C) 2006 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + * Coded by Luke Foxton (lfoxton@melcoe.mq.edu.au) + */ + +# includes +!include "MUI.nsh" +!include "LogicLib.nsh" +!include "includes\backup.nsh" + +#defines +!define REG_HEAD "Software\LAMS Foundation\LAMSv2" +!define MUI_ICON "..\graphics\lams2.ico" + +# Installer attributes +Name "LAMS Backup Utility" +BrandingText "LAMS Backup Utility" +OutFile "..\..\build\lams-backup.exe" +InstallDir "C:\lams" +Icon ..\graphics\lams2.ico +InstallDirRegKey HKLM "${REG_HEAD}" "" +VIProductVersion 2.0.0.0 +VIAddVersionKey ProductName "LAMS Backup Utility" +VIAddVersionKey ProductVersion "1.0" +VIAddVersionKey CompanyName "LAMS International" +VIAddVersionKey CompanyWebsite "lamscommunity.org" +VIAddVersionKey FileVersion "" +VIAddVersionKey FileDescription "" +VIAddVersionKey LegalCopyright "" + + + +# set warning when cancelling install +!define MUI_ABORTWARNING +Page custom PreBackupDir PostBackupDir +!define MUI_INSTFILESPAGE_FINISHHEADER_TEXT "LAMS backup complete" +!define MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT "" +!insertmacro MUI_PAGE_INSTFILES +Page custom PreFinish PostFinish + +;!define MUI_FINISHPAGE_TEXT "LAMS has been successfully backed up on your computer" +;!insertmacro MUI_PAGE_FINISH + +!insertmacro MUI_LANGUAGE "English" + + + +# variables +Var CURR_VERSION +Var DB_NAME +Var DB_USER +Var DB_PASS +Var MYSQL_DIR +Var BACKUP_DIR + + +ReserveFile "backup.ini" +ReserveFile "backup-finish.ini" + + +Section backup + ;make the section compulsory + SectionIn RO + setoutpath $BACKUP_DIR + file "..\documents\backup.txt" + clearerrors + DetailPrint "Backing up LAMS at: $BACKUP_DIR. This may take a few minutes" + SetDetailsPrint listonly + createdirectory $BACKUP_DIR + copyfiles /SILENT "$INSTDIR\*" $BACKUP_DIR + SetDetailsPrint both + iferrors error1 continue1 + error1: + DetailPrint "Backup failed" + MessageBox MB_OK|MB_ICONSTOP "LAMS backup to $BACKUP_DIR failed. Check that all other applications are closed and LAMS is not running." + Abort + continue1: + + DetailPrint 'Dumping database to: $BACKUP_DIR' + setoutpath "$BACKUP_DIR" + Strcpy $4 '"$MYSQL_DIR\bin\mysqldump" -r "$BACKUP_DIR\dump.sql" $DB_NAME -u $DB_USER -p$DB_PASS' + DetailPrint $4 + nsExec::ExecToStack $4 + Pop $0 + Pop $1 + ${If} $0 == "yes" + goto error + ${EndIf} + + goto done + error: + DetailPrint "Database dump failed" + MessageBox MB_OK|MB_ICONSTOP "Database dump failed $\r$\nError:$\r$\n$\r$\n$1" + Abort "Database dump failed" + + done: + +SectionEnd + +Function .onInit + # check if LAMS is stopped + + SetOutPath $TEMP + File "..\..\build\LocalPortScanner.class" + ReadRegStr $0 HKLM "${REG_HEAD}" "lams_port" + ReadRegStr $1 HKLM "${REG_HEAD}" "dir_jdk" + Goto checklams + + + + checklams: + nsExec::ExecToStack "$1\bin\java LocalPortScanner $0" + Pop $2 + ${If} $2 == 2 + MessageBox MB_YESNOCANCEL|MB_ICONQUESTION "LAMS appears to be running. Do you wish to continue with LAMS running? $\r$\n$\r$\nClick yes to continue or no to stop LAMS (will take a few seconds)" \ + IDNO stoplams \ + IDCANCEL quitbackup + ${EndIf} + goto continue + stoplams: + nsExec::ExecToStack 'sc stop LAMSv2' + Pop $0 + Pop $1 + DetailPrint "Sent stop command to LAMS service." + # sleep for 10s to ensure that JBoss closes properly + sleep 10000 + Goto checklams + quitbackup: + Delete "$TEMP\LocalPortScanner.class" + Abort + continue: + Delete "$TEMP\LocalPortScanner.class" + + + + + + + + + + + ReadRegStr $INSTDIR HKLM "${REG_HEAD}" "dir_inst" + + ${if} $INSTDIR == "" + MessageBox MB_OK|MB_ICONEXCLAMATION "You do not have LAMS 2 installed" + Abort + ${endif} + + ReadRegStr $CURR_VERSION HKLM "${REG_HEAD}" "version" + ReadRegStr $DB_NAME HKLM "${REG_HEAD}" "db_name" + ReadRegStr $DB_USER HKLM "${REG_HEAD}" "db_user" + ReadRegStr $DB_PASS HKLM "${REG_HEAD}" "db_pass" + ReadRegStr $MYSQL_DIR HKLM "${REG_HEAD}" "dir_mysql" + call CheckMySQL + + Call GetLocalTime + Pop "$0" ;Variable (for day) + Pop "$1" ;Variable (for month) + Pop "$2" ;Variable (for year) + Pop "$3" ;Variable (for day of week name) + Pop "$4" ;Variable (for hour) + Pop "$5" ;Variable (for minute) + Pop "$6" ;Variable (for second) + + strlen $7 $0 + ${if} $7 == 1 + strcpy $0 "0$0" + ${endif} + + strlen $7 $1 + ${if} $7 == 1 + strcpy $1 "0$1" + ${endif} + + strlen $7 $4 + ${if} $7 == 1 + strcpy $4 "0$4" + ${endif} + + strlen $7 $5 + ${if} $7 == 1 + strcpy $1 "0$5" + ${endif} + + + strcpy $BACKUP_DIR "$INSTDIR-$CURR_VERSION-$2$1$0$4$5.bak" + + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "backup.ini" + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "backup-finish.ini" +FunctionEnd + +Function PreBackupDir + !insertmacro MUI_INSTALLOPTIONS_WRITE "backup.ini" "Field 1" "State" "$BACKUP_DIR" + !insertmacro MUI_HEADER_TEXT "LAMS Backup Utility" "Enter a directory in the space provided to back up your LAMS installation" + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "backup.ini" +FunctionEnd + +Function PostBackupDir + !insertmacro MUI_INSTALLOPTIONS_READ $BACKUP_DIR "backup.ini" "Field 1" "State" + ${if} $BACKUP_DIR == "" + MessageBox MB_OK|MB_ICONEXCLAMATION "The directory entered is not valid: $\r$\n$BACKUP_DIR" + Abort + ${endif} + + iffileexists $BACKUP_DIR exists continue + iffileexists "$BACKUP_DIR\*" exists continue + + goto continue + exists: + MessageBox MB_OK|MB_ICONEXCLAMATION "The file name for the directory entered is already in use: $\r$\n$BACKUP_DIR" + continue: +FunctionEnd + +Function PreFinish + !insertmacro MUI_INSTALLOPTIONS_WRITE "backup-finish.ini" "Field 1" "Text" "Congratulations! \r\n\r\nLAMS has backed successfully backed up to: $BACKUP_DIR" + !insertmacro MUI_HEADER_TEXT "LAMS Backup Utility" "Your LAMS backup is complete" + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "backup-finish.ini" +FunctionEnd + +Function PostFinish + ; DO NOTHING! +FunctionEnd + +Function CheckMySQL + # Checking if the given database name already exists in the mysql database list + nsExec::ExecToStack '$MYSQL_DIR\bin\mysql -u$DB_USER -p$DB_PASS $DB_NAME -e "SELECT * FROM lams_configuration"' + Pop $0 + Pop $1 + ${If} $0 != 0 ; if mySQL install directory field is empty, do not continue + MessageBox MB_OK|MB_ICONSTOP "Could not find database $DB_NAME. Please check your database settings and try again" + Abort + ${EndIf} + + + #ifFileExists "$MYSQL_DIR\data\$DB_NAME\*.*" continue NoDatabaseNameExists + #NoDatabaseNameExists: + # MessageBox MB_OK|MB_ICONSTOP "Could not find database $DB_NAME. Please check your database settings and try again" + # quit + #continue: + + # check mysql version is 5.0.x + nsExec::ExecToStack '$MYSQL_DIR\bin\mysqladmin --version' + Pop $0 + Pop $1 + ${If} $1 == "" ; if mySQL install directory field is empty, do not continue + MessageBox MB_OK|MB_ICONSTOP "Your MySQL directory does not appear to be valid, please enter a valid MySQL directory before continuing.$\r$\n$\r$\n$1" + Abort + ${EndIf} + + ${StrStr} $0 $1 "5.0" + + ${If} $0 == "" ; if not 5.0.x, check 5.1.x + ${StrStr} $0 $1 "5.1" + ${If} $0 == "" + MessageBox MB_OK|MB_ICONSTOP "Your MySQL version does not appear to be compatible with LAMS (5.0.x or 5.1.x): $\r$\n$\r$\n$1" + MessageBox MB_OK|MB_ICONSTOP "Your MySQL directory does not appear to be valid, please enter a valid MySQL directory before continuing.$\r$\n$\r$\n$1" + Abort + ${endif} + ${EndIf} +FunctionEnd + + Index: win_installer/utils/src/includes/Array.nsh =================================================================== diff -u --- win_installer/utils/src/includes/Array.nsh (revision 0) +++ win_installer/utils/src/includes/Array.nsh (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,418 @@ + + ############################################################################################### + ## Array.nsh + ## NSIS Array & script header + ## + ## Writted by Afrow UK (Stuart Welch) + ## Last modified: 6th September 2005 + ############################################################################################### + + ## See Array.txt for usage information. + ## Please don't modify this file! + + ## Current Array methods: + ## Array, Set, Get, Shift, Unshift, Push, Pop, Put, Slice, Delete, Reverse, Copy, Init, Clear, + ## ValExists + + !ifndef ArrayIncluded + !define ArrayIncluded + + !ifndef ArrayNoTemp1 + Var Array_Temp1 + !endif + !ifndef ArrayNoTemp2 + Var Array_Temp2 + !endif + !ifndef ArrayNoTemp3 + Var Array_Temp3 + !endif + !ifndef ArrayNoTemp4 + Var Array_Temp4 + !endif + + ############################################################################################### + ## Array: Creates an Array object + ############################################################################################### + !macro Array Array + !ifndef "${Array}-Used" + !define "${Array}-Used" + + !define "${Array}-Store" "$PLUGINSDIR\${Array}.tmp" + !define "${Array}-Section" "0" + + !ifdef Array-NoErrors + !define "${Array}-NoErrors" + !undef Array-NoErrors + !endif + + Var "${Array}_UBound" + + !define "${Array}->Set" '!insertmacro "Array-Set" "${Array}"' + !define "${Array}->Get" '!insertmacro "Array-Get" "${Array}"' + !define "${Array}->Shift" '!insertmacro "Array-Shift" "${Array}"' + !define "${Array}->Unshift" '!insertmacro "Array-Unshift" "${Array}"' + !define "${Array}->Push" '!insertmacro "Array-Push" "${Array}"' + !define "${Array}->Pop" '!insertmacro "Array-Pop" "${Array}"' + !define "${Array}->Put" '!insertmacro "Array-Put" "${Array}"' + !define "${Array}->Slice" '!insertmacro "Array-Slice" "${Array}"' + !define "${Array}->Delete" '!insertmacro "Array-Delete" "${Array}"' + !define "${Array}->Reverse" '!insertmacro "Array-Reverse" "${Array}"' + !define "${Array}->Copy" '!insertmacro "Array-Copy" "${Array}"' + !define "${Array}->Exists" '!insertmacro "Array-Exists" "${Array}"' + !define "${Array}->Clear" '!insertmacro "Array-Clear" "${Array}"' + !define "${Array}->Init" '!insertmacro "Array-Init" "${Array}"' + !define "${Array}->Destroy" '!insertmacro "Array-Destroy" "${Array}"' + + !else + !error "Array: ${Array} has already been declared once!" + !endif + !macroend + !define Array "!insertmacro Array" + !define ArrayNoErrors "!define Array-NoErrors" + + ############################################################################################### + ## Array-CheckForError: Internal macro used for error message + ############################################################################################### + !macro Array-CheckForError ArrayUBound Index + IntCmp "${ArrayUBound}" "${Index}" +3 0 +3 + MessageBox MB_OK|MB_ICONSTOP "Index: ${Index} is out of range in Array: Array" + Abort + !macroend + + ############################################################################################### + ## Array-Set: Sets value at Array Index + ############################################################################################### + !macro "Array-Set" Array Index Value + !ifdef "${Array}-Used" + !ifdef "${Array}-Inited" + !ifndef "${Array}-NoErrors" + !insertmacro Array-CheckForError "$${Array}_UBound" "${Index}" + !endif + WriteINIStr "${${Array}-Store}" "${${Array}-Section}" "${Index}" "${Value}" + !else + !error "Array: ${Array} not initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Set" "!insertmacro Array-Set" + + ############################################################################################### + ## Array-Get: Gets value at Array Index + ############################################################################################### + !macro "Array-Get" Array Index Var + !ifdef "${Array}-Used" + !ifdef "${Array}-Inited" + !ifndef "${Array}-NoErrors" + !insertmacro Array-CheckForError "$${Array}_UBound" "${Index}" + !endif + ReadINIStr "${Var}" "${${Array}-Store}" "${${Array}-Section}" "${Index}" + !else + !error "Array: ${Array} not initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Get" "!insertmacro Array-Get" + + ############################################################################################### + ## Array-Push: Puts element at front of array + ############################################################################################### + !macro "Array-Push" Array Value + !ifdef "${Array}-Used" + !ifdef "${Array}-Inited" + StrCpy $Array_Temp2 "$${Array}_UBound" + IntCmp $Array_Temp2 -1 +6 +6 + ReadINIStr "$Array_Temp1" "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp2" + IntOp $Array_Temp3 $Array_Temp2 + 1 + WriteINIStr "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp3" "$Array_Temp1" + IntOp $Array_Temp2 $Array_Temp2 - 1 + Goto -5 + WriteINIStr "${${Array}-Store}" "${${Array}-Section}" "0" "${Value}" + IntOp "$${Array}_UBound" "$${Array}_UBound" + 1 + !else + !error "Array: ${Array} not initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Push" "!insertmacro Array-Push" + + ############################################################################################### + ## Array-Pop: Takes element from front of Array + ############################################################################################### + !macro "Array-Pop" Array Var + !ifdef "${Array}-Used" + !ifdef "${Array}-Inited" + ReadINIStr "${Var}" "${${Array}-Store}" "${${Array}-Section}" "0" + StrCpy $Array_Temp2 1 + ReadINIStr "$Array_Temp1" "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp2" + IntOp $Array_Temp3 $Array_Temp2 - 1 + WriteINIStr "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp3" "$Array_Temp1" + StrCmp $Array_Temp2 "$${Array}_UBound" +3 + IntOp $Array_Temp2 $Array_Temp2 + 1 + Goto -5 + DeleteINIStr "${${Array}-Store}" "${${Array}-Section}" "$${Array}_UBound" + IntOp "$${Array}_UBound" "$${Array}_UBound" - 1 + !else + !error "Array: ${Array} not initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Pop" "!insertmacro Array-Pop" + + ############################################################################################### + ## Array-Put: Puts element at Index in Array + ############################################################################################### + !macro "Array-Put" Array Index Value + !ifdef "${Array}-Used" + !ifdef "${Array}-Inited" + !ifndef "${Array}-NoErrors" + !insertmacro Array-CheckForError "$${Array}_UBound" "${Index}" + !endif + StrCpy $Array_Temp2 "$${Array}_UBound" + ReadINIStr "$Array_Temp1" "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp2" + IntOp $Array_Temp3 $Array_Temp2 + 1 + WriteINIStr "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp3" "$Array_Temp1" + IntOp $Array_Temp2 $Array_Temp2 - 1 + IntCmp $Array_Temp2 "${Index}" -4 0 -4 + WriteINIStr "${${Array}-Store}" "${${Array}-Section}" "${Index}" "${Value}" + IntOp "$${Array}_UBound" "$${Array}_UBound" + 1 + !else + !error "Array: ${Array} not initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Put" "!insertmacro Array-Put" + + ############################################################################################### + ## Array-Slice: Cuts element from Array + ############################################################################################### + !macro "Array-Slice" Array Index Var + !ifdef "${Array}-Used" + !ifdef "${Array}-Inited" + !ifndef "${Array}-NoErrors" + !insertmacro Array-CheckForError "$${Array}_UBound" "${Index}" + !endif + ReadINIStr "${Var}" "${${Array}-Store}" "${${Array}-Section}" "${Index}" + StrCpy $Array_Temp2 ${Index} + IntOp $Array_Temp2 $Array_Temp2 + 1 + ReadINIStr "$Array_Temp1" "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp2" + IntOp $Array_Temp3 $Array_Temp2 - 1 + WriteINIStr "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp3" "$Array_Temp1" + StrCmp $Array_Temp2 "$${Array}_UBound" -4 + DeleteINIStr "${${Array}-Store}" "${${Array}-Section}" "$${Array}_UBound" + IntOp "$${Array}_UBound" "$${Array}_UBound" - 1 + !else + !error "Array: ${Array} not initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Slice" "!insertmacro Array-Slice" + + ############################################################################################### + ## Array-Delete: Deletes element in Array + ############################################################################################### + !macro "Array-Delete" Array Index + !ifdef "${Array}-Used" + !ifdef "${Array}-Inited" + !ifndef "${Array}-NoErrors" + !insertmacro Array-CheckForError "$${Array}_UBound" "${Index}" + !endif + StrCpy $Array_Temp2 ${Index} + IntOp $Array_Temp2 $Array_Temp2 + 1 + ReadINIStr "$Array_Temp1" "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp2" + IntOp $Array_Temp3 $Array_Temp2 - 1 + WriteINIStr "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp3" "$Array_Temp1" + IntCmp $Array_Temp2 "$${Array}_UBound" -4 + DeleteINIStr "${${Array}-Store}" "${${Array}-Section}" "$${Array}_UBound" + IntOp "$${Array}_UBound" "$${Array}_UBound" - 1 + !else + !error "Array: ${Array} not initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Delete" "!insertmacro Array-Delete" + + ############################################################################################### + ## Array-Reverse: Reverses elements in Array + ############################################################################################### + !macro "Array-Reverse" Array + !ifdef "${Array}-Used" + !ifdef "${Array}-Inited" + IntCmp "$${Array}_UBound" 0 +10 +10 + StrCpy $Array_Temp2 "$${Array}_UBound" + StrCpy $Array_Temp4 "0" + ReadINIStr "$Array_Temp1" "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp2" + ReadINIStr "$Array_Temp3" "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp4" + WriteINIStr "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp2" "$Array_Temp3" + WriteINIStr "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp4" "$Array_Temp1" + IntOp $Array_Temp2 $Array_Temp2 - 1 + IntOp $Array_Temp4 $Array_Temp4 + 1 + IntCmp $Array_Temp2 $Array_Temp4 0 0 -6 + !else + !error "Array: ${Array} not initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Reverse" "!insertmacro Array-Reverse" + + ############################################################################################### + ## Array-Shift: Puts element on the end of Array + ############################################################################################### + !macro "Array-Shift" Array Value + !ifdef "${Array}-Used" + !ifdef "${Array}-Inited" + IntOp "$${Array}_UBound" "$${Array}_UBound" + 1 + WriteINIStr "${${Array}-Store}" "${${Array}-Section}" "$${Array}_UBound" "${Value}" + !else + !error "Array: ${Array} not initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Shift" "!insertmacro Array-Shift" + + ############################################################################################### + ## Array-Unshift: Removes element from end of Array + ############################################################################################### + !macro "Array-Unshift" Array Var + !ifdef "${Array}-Used" + !ifdef "${Array}-Inited" + ReadINIStr "${Var}" "${${Array}-Store}" "${${Array}-Section}" "$${Array}_UBound" + DeleteINIStr "${${Array}-Store}" "${${Array}-Section}" "$${Array}_UBound" + IntOp "$${Array}_UBound" "$${Array}_UBound" - 1 + !else + !error "Array: ${Array} not initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Unshift" "!insertmacro Array-Unshift" + + ############################################################################################### + ## Array-Copy: Copies one Array to another + ############################################################################################### + !macro Array-Copy Array ToArray Mode + !ifdef "${Array}-Used" + !ifdef "${Array}-Inited" + !ifdef "${ToArray}-Used" + !ifdef "${ToArray}-Inited" + !define "Mode-${Mode}" + StrCpy $Array_Temp1 "-1" + !ifdef "Mode-w" + StrCpy $Array_Temp2 "-1" + StrCpy "$${ToArray}_UBound" "$${Array}_UBound" + !else + StrCpy $Array_Temp2 "$${ToArray}_UBound" + StrCmp "$${ToArray}_UBound" -1 0 +2 + StrCpy "$${ToArray}_UBound" 0 + IntOp "$${ToArray}_UBound" "$${Array}_UBound" + "$${ToArray}_UBound" + !endif + IntOp $Array_Temp1 $Array_Temp1 + 1 + IntOp $Array_Temp2 $Array_Temp2 + 1 + ReadINIStr "$Array_Temp3" "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp1" + WriteINIStr "${${ToArray}-Store}" "${${ToArray}-Section}" "$Array_Temp2" "$Array_Temp3" + StrCmp $Array_Temp1 "$${Array}_UBound" 0 -4 + !else + !error "Array: ${ToArray} not initialised!" + !endif + !else + !error "Array: ${ToArray} not declared!" + !endif + !else + !error "Array: ${Array} not initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Copy" "!insertmacro Array-Copy" + + ############################################################################################### + ## Array-Exists: Checks if Array element exists + ############################################################################################### + !macro Array-Exists Array Value TrueGo FalseGo + !ifdef "${Array}-Used" + !ifdef "${Array}-Inited" + StrCpy $Array_Temp1 0 + ReadINIStr "$Array_Temp2" "${${Array}-Store}" "${${Array}-Section}" "$Array_Temp1" + StrCmp $Array_Temp2 "${Value}" "${TrueGo}" + IntOp $Array_Temp1 $Array_Temp1 + 1 + StrCmp $Array_Temp1 "$${Array}_UBound" "${FalseGo}" -3 + !else + !error "Array: ${Array} not initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Exists" "!insertmacro Array-Exists" + + ############################################################################################### + ## Array-Clear: Clears Array elements + ############################################################################################### + !macro Array-Clear Array + !ifdef "${Array}-Used" + StrCpy "$${Array}_UBound" -1 + DeleteINISec "${${Array}-Store}" "${${Array-Section}" + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Clear" "!insertmacro Array-Clear" + + ############################################################################################### + ## Array-Init: Initialises Array for use + ############################################################################################### + !macro Array-Init Array + !ifdef "${Array}-Used" + !ifndef "${Array}-Inited" + !define "${Array}-Inited" + StrCpy "$${Array}_UBound" -1 + !else + !error "Array: ${Array} already initialised!" + !endif + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Init" "!insertmacro Array-Init" + + ############################################################################################### + ## Array-Destroy: Deletes Array object + ############################################################################################### + !macro Array-Destroy Array + !ifdef "${Array}-Used" + StrCpy "$${Array}_UBound" -1 + SetDetailsPrint none + FlushINI "${${Array}-Store}" + Delete "${${Array}-Store}" + SetDetailsPrint both + !undef "${Array}-Store" + !undef "${Array}-Section" + !undef "${Array}-Used" + !else + !error "Array: ${Array} not declared!" + !endif + !macroend + !define "Array-Destroy" "!insertmacro Array-Destroy" + + !endif # ArrayIncluded + + # eof \ No newline at end of file Index: win_installer/utils/src/includes/Array.nsi =================================================================== diff -u --- win_installer/utils/src/includes/Array.nsi (revision 0) +++ win_installer/utils/src/includes/Array.nsi (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,91 @@ +## Example for NSIS Array script header +## by Afrow UK + +## Include Array & LogicLib script header +!include Array.nsh +!include LogicLib.nsh + +## General settings +OutFile ArrayTest.exe +Name Arraytest +Caption ArrayTest +ShowInstDetails show + +## Array creation +${Array} myArray1 +${Array} myArray2 + +Section + +## Initialise both arrays before we use them! +${myArray1->Init} +${myArray2->Init} + +## Develop myArray1 +${myArray1->Shift} "1. Hello there!" +${myArray1->Shift} "2. This took a while" +${myArray1->Shift} "3. To let you know!" +${myArray1->Shift} "4. This is a cool example..." +${myArray1->Shift} "5. Hope it helps." +${myArray1->Shift} "6. Or not." +${myArray1->Push} "0. This was Pushed on front (took a bit of time!)" + +## Print contents of myArray1 +DetailPrint "=========================" +DetailPrint " Array: myArray1" +DetailPrint "" + +Push $R0 # Save value of $R0 in case we need it later +Push $R1 # & $R1 + StrCpy $R0 "$myArray1_UBound" + +${Do} + ${myArray1->Get} $R0 $R1 + DetailPrint "$R0 is: $R1" + IntOp $R0 $R0 - 1 +${LoopUntil} $R0 < 0 + +Pop $R1 # Value of $R1 is back! +Pop $R0 # & $R0 + +## Copy myArray1 into myArray2 +${myArray1->Copy} myArray2 1 + +## Do stuff with myArray2 +## Comment/uncomment and see what happens!!! + #${myArray2->Put} 3 "Put @ 3: Gay bear!" + ${myArray2->Reverse} + #${myArray2->Shift} "It got reversed!" + #${myArray2->Delete} 5 + +## Print contents of myArray2 +DetailPrint "" +DetailPrint "=========================" +DetailPrint " Array: myArray2" +DetailPrint "" + +Push $R0 # Save value of $R0 in case we need it later +Push $R1 # & $R1 + StrCpy $R0 "$myArray2_UBound" + +${Do} + ${myArray2->Get} $R0 $R1 + DetailPrint "$R0 is: $R1" + IntOp $R0 $R0 - 1 +${LoopUntil} $R0 < 0 + +## Pop and Unshift +DetailPrint "" +${myArray2->Pop} $R0 +DetailPrint "Popped: $R0" +${myArray2->Unshift} $R0 +DetailPrint "Unshifted: $R0" + +Pop $R1 # Value of $R1 is back! +Pop $R0 # & $R0 + +## Don't need Arrays anymore. Lets DESTROY them! +${myArray2->Destroy} +${myArray1->Destroy} + +SectionEnd \ No newline at end of file Index: win_installer/utils/src/includes/Backup.nsh =================================================================== diff -u --- win_installer/utils/src/includes/Backup.nsh (revision 0) +++ win_installer/utils/src/includes/Backup.nsh (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,159 @@ +;---------------------------------------------------------------------------- +; Function Call : Call GetLocalTime +; +; Pop "$Variable1" +; Day. +; +; Pop "$Variable2" +; Month. +; +; Pop "$Variable3" +; Year. +; +; Pop "$Variable4" +; Day of the week name. +; +; Pop "$Variable5" +; Hour. +; +; Pop "$Variable6" +; Minute. +; +; Pop "$Variable7" +; Second. +;---------------------------------------------------------------------------- +Function GetLocalTime + + # Prepare variables + Push $0 + Push $1 + Push $2 + Push $3 + Push $4 + Push $5 + Push $6 + + # Call GetLocalTime API from Kernel32.dll + System::Call '*(&i2, &i2, &i2, &i2, &i2, &i2, &i2, &i2) i .r0' + System::Call 'kernel32::GetLocalTime(i) i(r0)' + System::Call '*$0(&i2, &i2, &i2, &i2, &i2, &i2, &i2, &i2)i \ + (.r4, .r5, .r3, .r6, .r2, .r1, .r0,)' + + # Day of week: convert to name + StrCmp $3 0 0 +3 + StrCpy $3 Sunday + Goto WeekNameEnd + StrCmp $3 1 0 +3 + StrCpy $3 Monday + Goto WeekNameEnd + StrCmp $3 2 0 +3 + StrCpy $3 Tuesday + Goto WeekNameEnd + StrCmp $3 3 0 +3 + StrCpy $3 Wednesday + Goto WeekNameEnd + StrCmp $3 4 0 +3 + StrCpy $3 Thursday + Goto WeekNameEnd + StrCmp $3 5 0 +3 + StrCpy $3 Friday + Goto WeekNameEnd + StrCmp $3 6 0 +2 + StrCpy $3 Saturday + WeekNameEnd: + + # Minute: convert to 2 digits format + IntCmp $1 9 0 0 +2 + StrCpy $1 '0$1' + + # Second: convert to 2 digits format + IntCmp $0 9 0 0 +2 + StrCpy $0 '0$0' + + # Return to user + Exch $6 + Exch + Exch $5 + Exch + Exch 2 + Exch $4 + Exch 2 + Exch 3 + Exch $3 + Exch 3 + Exch 4 + Exch $2 + Exch 4 + Exch 5 + Exch $1 + Exch 5 + Exch 6 + Exch $0 + Exch 6 + +FunctionEnd + + +# http://nsis.sourceforge.net/StrStr +# +!define StrStr "!insertmacro StrStr" + +!macro StrStr ResultVar String SubString + Push `${String}` + Push `${SubString}` + Call StrStr + Pop `${ResultVar}` +!macroend +Function StrStr +/*After this point: + ------------------------------------------ + $R0 = SubString (input) + $R1 = String (input) + $R2 = SubStringLen (temp) + $R3 = StrLen (temp) + $R4 = StartCharPos (temp) + $R5 = TempStr (temp)*/ + + ;Get input from user + Exch $R0 + Exch + Exch $R1 + Push $R2 + Push $R3 + Push $R4 + Push $R5 + + ;Get "String" and "SubString" length + StrLen $R2 $R0 + StrLen $R3 $R1 + ;Start "StartCharPos" counter + StrCpy $R4 0 + + ;Loop until "SubString" is found or "String" reaches its end + ${Do} + ;Remove everything before and after the searched part ("TempStr") + StrCpy $R5 $R1 $R2 $R4 + + ;Compare "TempStr" with "SubString" + ${IfThen} $R5 == $R0 ${|} ${ExitDo} ${|} + ;If not "SubString", this could be "String"'s end + ${IfThen} $R4 >= $R3 ${|} ${ExitDo} ${|} + ;If not, continue the loop + IntOp $R4 $R4 + 1 + ${Loop} + +/*After this point: + ------------------------------------------ + $R0 = ResultVar (output)*/ + + ;Remove part before "SubString" on "String" (if there has one) + StrCpy $R0 $R1 `` $R4 + + ;Return output to user + Pop $R5 + Pop $R4 + Pop $R3 + Pop $R2 + Pop $R1 + Exch $R0 +FunctionEnd \ No newline at end of file Index: win_installer/utils/src/includes/Functions.nsh =================================================================== diff -u --- win_installer/utils/src/includes/Functions.nsh (revision 0) +++ win_installer/utils/src/includes/Functions.nsh (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,534 @@ +!include "LogicLib.nsh" + +# http://nsis.sourceforge.net/Another_String_Replace_%28and_Slash/BackSlash_Converter%29 +# +; Push $filenamestring (e.g. 'c:\this\and\that\filename.htm') +; Push "\" +; Call StrSlash +; Pop $R0 +; ;Now $R0 contains 'c:/this/and/that/filename.htm' +Function StrSlash + Exch $R3 ; $R3 = needle ("\" or "/") + Exch + Exch $R1 ; $R1 = String to replacement in (haystack) + Push $R2 ; Replaced haystack + Push $R4 ; $R4 = not $R3 ("/" or "\") + Push $R6 + Push $R7 ; Scratch reg + StrCpy $R2 "" + StrLen $R6 $R1 + StrCpy $R4 "\" + StrCmp $R3 "/" loop + StrCpy $R4 "/" +loop: + StrCpy $R7 $R1 1 + StrCpy $R1 $R1 $R6 1 + StrCmp $R7 $R3 found + StrCpy $R2 "$R2$R7" + StrCmp $R1 "" done loop +found: + StrCpy $R2 "$R2$R4" + StrCmp $R1 "" done loop +done: + StrCpy $R3 $R2 + Pop $R7 + Pop $R6 + Pop $R4 + Pop $R2 + Pop $R1 + Exch $R3 +FunctionEnd + + +# http://nsis.sourceforge.net/StrStr +# +!define StrStr "!insertmacro StrStr" + +!macro StrStr ResultVar String SubString + Push `${String}` + Push `${SubString}` + Call StrStr + Pop `${ResultVar}` +!macroend + +Function StrStr +/*After this point: + ------------------------------------------ + $R0 = SubString (input) + $R1 = String (input) + $R2 = SubStringLen (temp) + $R3 = StrLen (temp) + $R4 = StartCharPos (temp) + $R5 = TempStr (temp)*/ + + ;Get input from user + Exch $R0 + Exch + Exch $R1 + Push $R2 + Push $R3 + Push $R4 + Push $R5 + + ;Get "String" and "SubString" length + StrLen $R2 $R0 + StrLen $R3 $R1 + ;Start "StartCharPos" counter + StrCpy $R4 0 + + ;Loop until "SubString" is found or "String" reaches its end + ${Do} + ;Remove everything before and after the searched part ("TempStr") + StrCpy $R5 $R1 $R2 $R4 + + ;Compare "TempStr" with "SubString" + ${IfThen} $R5 == $R0 ${|} ${ExitDo} ${|} + ;If not "SubString", this could be "String"'s end + ${IfThen} $R4 >= $R3 ${|} ${ExitDo} ${|} + ;If not, continue the loop + IntOp $R4 $R4 + 1 + ${Loop} + +/*After this point: + ------------------------------------------ + $R0 = ResultVar (output)*/ + + ;Remove part before "SubString" on "String" (if there has one) + StrCpy $R0 $R1 `` $R4 + + ;Return output to user + Pop $R5 + Pop $R4 + Pop $R3 + Pop $R2 + Pop $R1 + Exch $R0 +FunctionEnd + + +;This function will search in a file for the specified string, and return some values. +/* +USAGE +Push C:\temp1.txt +Push hello + Call FileSearch +Pop $0 #Number of times found throughout +Pop $1 #Found at all? yes/no +Pop $2 #Number of lines found in + +StrCmp $1 yes 0 +2 +MessageBox MB_OK "$\"hello$\" was found in the file $0 times on $2 lines." +*/ +Function FileSearch +Exch $0 ;search for +Exch +Exch $1 ;input file +Push $2 +Push $3 +Push $4 +Push $5 +Push $6 +Push $7 +Push $8 +Push $9 +Push $R0 + FileOpen $2 $1 r + StrLen $4 $0 + StrCpy $5 0 + StrCpy $7 no + StrCpy $8 0 + StrCpy $9 0 + ClearErrors +loop_main: + FileRead $2 $3 + IfErrors done + IntOp $R0 $R0 + $9 + StrCpy $9 0 + StrCpy $5 0 +filter_top: + IntOp $5 $5 - 1 + StrCpy $6 $3 $4 $5 + StrCmp $6 "" loop_main + StrCmp $6 $0 0 filter_top + StrCpy $3 $3 $5 + StrCpy $5 0 + StrCpy $7 yes + StrCpy $9 1 + IntOp $8 $8 + 1 +Goto filter_top +done: + FileClose $2 + StrCpy $0 $8 + StrCpy $1 $7 + StrCpy $2 $R0 +Pop $R0 +Pop $9 +Pop $8 +Pop $7 +Pop $6 +Pop $5 +Pop $4 +Pop $3 +Exch $2 ;output number of lines +Exch +Exch $1 ;output yes/no +Exch 2 +Exch $0 ;output count found +FunctionEnd + +;---------------------------------------------------------------------------- +; Superseded by : GetTime function. +;---------------------------------------------------------------------------- +; Title : Get Local Time +; Short Name : GetLocalTime +; Last Changed : 22/Feb/2005 +; Code Type : Function +; Code Sub-Type : One-way Output +;---------------------------------------------------------------------------- +; Required : System plugin. +; Description : Gets the current local time of the user's computer +;---------------------------------------------------------------------------- +; Function Call : Call GetLocalTime +; +; Pop "$Variable1" +; Day. +; +; Pop "$Variable2" +; Month. +; +; Pop "$Variable3" +; Year. +; +; Pop "$Variable4" +; Day of the week name. +; +; Pop "$Variable5" +; Hour. +; +; Pop "$Variable6" +; Minute. +; +; Pop "$Variable7" +; Second. +;---------------------------------------------------------------------------- +; Author : Diego Pedroso +; Author Reg. Name : deguix +;---------------------------------------------------------------------------- + +Function GetLocalTime + + # Prepare variables + Push $0 + Push $1 + Push $2 + Push $3 + Push $4 + Push $5 + Push $6 + + # Call GetLocalTime API from Kernel32.dll + System::Call '*(&i2, &i2, &i2, &i2, &i2, &i2, &i2, &i2) i .r0' + System::Call 'kernel32::GetLocalTime(i) i(r0)' + System::Call '*$0(&i2, &i2, &i2, &i2, &i2, &i2, &i2, &i2)i \ + (.r4, .r5, .r3, .r6, .r2, .r1, .r0,)' + + # Day of week: convert to name + StrCmp $3 0 0 +3 + StrCpy $3 Sunday + Goto WeekNameEnd + StrCmp $3 1 0 +3 + StrCpy $3 Monday + Goto WeekNameEnd + StrCmp $3 2 0 +3 + StrCpy $3 Tuesday + Goto WeekNameEnd + StrCmp $3 3 0 +3 + StrCpy $3 Wednesday + Goto WeekNameEnd + StrCmp $3 4 0 +3 + StrCpy $3 Thursday + Goto WeekNameEnd + StrCmp $3 5 0 +3 + StrCpy $3 Friday + Goto WeekNameEnd + StrCmp $3 6 0 +2 + StrCpy $3 Saturday + WeekNameEnd: + + # Minute: convert to 2 digits format + IntCmp $1 9 0 0 +2 + StrCpy $1 '0$1' + + # Second: convert to 2 digits format + IntCmp $0 9 0 0 +2 + StrCpy $0 '0$0' + + # Return to user + Exch $6 + Exch + Exch $5 + Exch + Exch 2 + Exch $4 + Exch 2 + Exch 3 + Exch $3 + Exch 3 + Exch 4 + Exch $2 + Exch 4 + Exch 5 + Exch $1 + Exch 5 + Exch 6 + Exch $0 + Exch 6 + +FunctionEnd + +/** +* Source - Afrow UK http://nsis.sourceforge.net/VersionCompare +* +* Compare version numbers. +* +* Syntax: +* ${VersionCompare} "[Version1]" "[Version2]" $var +* ; $var=0 Versions are equal +* ; $var=1 Version1 is newer +* ; $var=2 Version2 is newer +**/ +Function VersionCompare + !define VersionCompare `!insertmacro VersionCompareCall` + + !macro VersionCompareCall _VER1 _VER2 _RESULT + Push `${_VER1}` + Push `${_VER2}` + Call VersionCompare + Pop ${_RESULT} + !macroend + + Exch $1 + Exch + Exch $0 + Exch + Push $2 + Push $3 + Push $4 + Push $5 + Push $6 + Push $7 + + begin: + StrCpy $2 -1 + IntOp $2 $2 + 1 + StrCpy $3 $0 1 $2 + StrCmp $3 '' +2 + StrCmp $3 '.' 0 -3 + StrCpy $4 $0 $2 + IntOp $2 $2 + 1 + StrCpy $0 $0 '' $2 + + StrCpy $2 -1 + IntOp $2 $2 + 1 + StrCpy $3 $1 1 $2 + StrCmp $3 '' +2 + StrCmp $3 '.' 0 -3 + StrCpy $5 $1 $2 + IntOp $2 $2 + 1 + StrCpy $1 $1 '' $2 + + StrCmp $4$5 '' equal + + StrCpy $6 -1 + IntOp $6 $6 + 1 + StrCpy $3 $4 1 $6 + StrCmp $3 '0' -2 + StrCmp $3 '' 0 +2 + StrCpy $4 0 + + StrCpy $7 -1 + IntOp $7 $7 + 1 + StrCpy $3 $5 1 $7 + StrCmp $3 '0' -2 + StrCmp $3 '' 0 +2 + StrCpy $5 0 + + StrCmp $4 0 0 +2 + StrCmp $5 0 begin newer2 + StrCmp $5 0 newer1 + IntCmp $6 $7 0 newer1 newer2 + + StrCpy $4 '1$4' + StrCpy $5 '1$5' + IntCmp $4 $5 begin newer2 newer1 + + equal: + StrCpy $0 0 + goto end + newer1: + StrCpy $0 1 + goto end + newer2: + StrCpy $0 2 + + end: + Pop $7 + Pop $6 + Pop $5 + Pop $4 + Pop $3 + Pop $2 + Pop $1 + Exch $0 +FunctionEnd + +!define StrTok "!insertmacro StrTok" + +!macro StrTok ResultVar String Separators ResultPart SkipEmptyParts + Push "${String}" + Push "${Separators}" + Push "${ResultPart}" + Push "${SkipEmptyParts}" + Call StrTok + Pop "${ResultVar}" +!macroend + +Function StrTok +/*After this point: + ------------------------------------------ + $0 = SkipEmptyParts (input) + $1 = ResultPart (input) + $2 = Separators (input) + $3 = String (input) + $4 = SeparatorsLen (temp) + $5 = StrLen (temp) + $6 = StartCharPos (temp) + $7 = TempStr (temp) + $8 = CurrentLoop + $9 = CurrentSepChar + $R0 = CurrentSepCharNum + */ + + ;Get input from user + Exch $0 + Exch + Exch $1 + Exch + Exch 2 + Exch $2 + Exch 2 + Exch 3 + Exch $3 + Exch 3 + Push $4 + Push $5 + Push $6 + Push $7 + Push $8 + Push $9 + Push $R0 + + ;Parameter defaults + ${IfThen} $2 == `` ${|} StrCpy $2 `|` ${|} + ${IfThen} $1 == `` ${|} StrCpy $1 `L` ${|} + ${IfThen} $0 == `` ${|} StrCpy $0 `0` ${|} + + ;Get "String" and "Separators" length + StrLen $4 $2 + StrLen $5 $3 + ;Start "StartCharPos" and "ResultPart" counters + StrCpy $6 0 + StrCpy $8 -1 + + ;Loop until "ResultPart" is met, "Separators" is found or + ;"String" reaches its end + ResultPartLoop: ;"CurrentLoop" Loop + + ;Increase "CurrentLoop" counter + IntOp $8 $8 + 1 + + StrSearchLoop: + ${Do} ;"String" Loop + ;Remove everything before and after the searched part ("TempStr") + StrCpy $7 $3 1 $6 + + ;Verify if it's the "String" end + ${If} $6 >= $5 + ;If "CurrentLoop" is what the user wants, remove the part + ;after "TempStr" and itself and get out of here + ${If} $8 == $1 + ${OrIf} $1 == `L` + StrCpy $3 $3 $6 + ${Else} ;If not, empty "String" and get out of here + StrCpy $3 `` + ${EndIf} + StrCpy $R0 `End` + ${ExitDo} + ${EndIf} + + ;Start "CurrentSepCharNum" counter (for "Separators" Loop) + StrCpy $R0 0 + + ${Do} ;"Separators" Loop + ;Use one "Separators" character at a time + ${If} $R0 <> 0 + StrCpy $9 $2 1 $R0 + ${Else} + StrCpy $9 $2 1 + ${EndIf} + + ;Go to the next "String" char if it's "Separators" end + ${IfThen} $R0 >= $4 ${|} ${ExitDo} ${|} + + ;Or, if "TempStr" equals "CurrentSepChar", then... + ${If} $7 == $9 + StrCpy $7 $3 $6 + + ;If "String" is empty because this result part doesn't + ;contain data, verify if "SkipEmptyParts" is activated, + ;so we don't return the output to user yet + + ${If} $7 == `` + ${AndIf} $0 = 1 ;${TRUE} + IntOp $6 $6 + 1 + StrCpy $3 $3 `` $6 + StrCpy $6 0 + Goto StrSearchLoop + ${ElseIf} $8 == $1 + StrCpy $3 $3 $6 + StrCpy $R0 "End" + ${ExitDo} + ${EndIf} ;If not, go to the next result part + IntOp $6 $6 + 1 + StrCpy $3 $3 `` $6 + StrCpy $6 0 + Goto ResultPartLoop + ${EndIf} + + ;Increase "CurrentSepCharNum" counter + IntOp $R0 $R0 + 1 + ${Loop} + ${IfThen} $R0 == "End" ${|} ${ExitDo} ${|} + + ;Increase "StartCharPos" counter + IntOp $6 $6 + 1 + ${Loop} + +/*After this point: + ------------------------------------------ + $3 = ResultVar (output)*/ + + ;Return output to user + + Pop $R0 + Pop $9 + Pop $8 + Pop $7 + Pop $6 + Pop $5 + Pop $4 + Pop $0 + Pop $1 + Pop $2 + Exch $3 +FunctionEnd \ No newline at end of file Index: win_installer/utils/src/lams-start.nsi =================================================================== diff -u --- win_installer/utils/src/lams-start.nsi (revision 0) +++ win_installer/utils/src/lams-start.nsi (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,79 @@ +/**************************************************************** + * Copyright (C) 2006 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $$Id$$ */ + +!include "MUI.nsh" +!include "LogicLib.nsh" +!include "includes\Functions.nsh" + +!define REG_HEAD "Software\LAMS Foundation\LAMSv2" + +Name "Start LAMS" +OutFile "..\..\build\lams-start.exe" +!define MUI_ICON "..\graphics\favicon.ico" +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_LANGUAGE "English" + +Function .onInit + SetSilent silent +FunctionEnd + +Section + ReadRegStr $9 HKLM "${REG_HEAD}" "db_user" + ReadRegStr $8 HKLM "${REG_HEAD}" "db_pass" + ReadRegStr $7 HKLM "${REG_HEAD}" "dir_inst" + ReadRegStr $6 HKLM "${REG_HEAD}" "dir_mysql" + + # check mysql password, mysql server status + StrLen $0 $8 + ${If} $0 == 0 + nsExec::ExecToStack '$6\bin\mysqladmin ping -u $9' + ${Else} + nsExec::ExecToStack '$6\bin\mysqladmin ping -u $9 -p$8' + ${EndIf} + Pop $0 + Pop $1 + # check mysql password is correct + ${StrStr} $2 $1 "Access denied" + ${If} $2 != "" + ; mysql password somehow changed - prompt user to update registry entry + ${EndIf} + # check mysql is running + ${StrStr} $2 $1 "mysqld is alive" + ${If} $2 == "" + MessageBox MB_OK|MB_ICONEXCLAMATION "MySQL does not appear to be running - please make sure it is running before starting LAMS." + Abort + ${EndIf} + + nsExec::ExecToStack 'sc start LAMSv2' + Pop $0 + Pop $1 + ${StrStr} $2 $1 "START_PENDING" + ${If} $2 == "" + MessageBox MB_OK|MB_ICONSTOP "Could not start LAMSv2 service: $\r$\n$1" + ${Else} + MessageBox MB_OK "Started LAMSv2 service. Please wait a minute or two while LAMS starts up." + ExecShell "open" '"$7\index.html"' + ${EndIf} +SectionEnd + Index: win_installer/utils/src/lams-stop.nsi =================================================================== diff -u --- win_installer/utils/src/lams-stop.nsi (revision 0) +++ win_installer/utils/src/lams-stop.nsi (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,43 @@ +/**************************************************************** + * Copyright (C) 2006 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $$Id$$ */ + +!include "MUI.nsh" +!include "LogicLib.nsh" + +Name "Start LAMS" +OutFile "..\..\build\lams-stop.exe" +!define MUI_ICON "..\graphics\favicon.ico" +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_LANGUAGE "English" + +Function .onInit + SetSilent silent +FunctionEnd + +Section + nsExec::ExecToStack 'sc stop LAMSv2' + Pop $0 + Pop $1 + MessageBox MB_OK "Stopped LAMSv2 service." +SectionEnd \ No newline at end of file Index: win_installer/utils/src/language-pack.nsi =================================================================== diff -u --- win_installer/utils/src/language-pack.nsi (revision 0) +++ win_installer/utils/src/language-pack.nsi (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,640 @@ +/**************************************************************** + * Copyright (C) 2006 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + * Coded by Luke Foxton (lfoxton@melcoe.mq.edu.au) + */ + +# includes +!include "includes\Functions.nsh" +!include "MUI.nsh" +!include "LogicLib.nsh" +!define ArrayNoTemp4 +!include "includes\Array.nsh" + + +# constants +!define VERSION "2007-02-10" ; DATE of language pack in fromat YYYYMMDD +!define SOURCE_JBOSS_HOME "D:\jboss-4.0.2" ; location of jboss where lams is deployed +!define REG_HEAD "Software\LAMS Foundation\LAMSv2" + +!define UTILS ".." +!define BASE_DIR "${UTILS}\.." +!define BASE_PROJECT_DIR "${BASE_DIR}\.." +!define DOCUMENTS "${UTILS}\documents" +!define BUILD "${BASE_DIR}\build" +!define SQL "sql" +!define ANT "ant" + + + +# installer settings +!define MUI_ICON "${UTILS}\graphics\lams2.ico" + +Name "LAMS ${VERSION} Language Pack Update" +BrandingText "LAMS-Language-Pack-${VERSION} -- built on ${__DATE__} ${__TIME__}" +# Installer attributes +OutFile "${BUILD}\LAMSLanguagePack-${VERSION}.exe" +InstallDir "C:\lams" +Icon ${UTILS}\graphics\lams2.ico +InstallDirRegKey HKLM "${REG_HEAD}" "" +LicenseForceSelection radiobuttons "I Agree" "I Do Not Agree" +VIProductVersion 2.0.0.0 +VIAddVersionKey ProductName "LAMS Language Pack ${VERSION}" +VIAddVersionKey ProductVersion "${VERSION}" +VIAddVersionKey CompanyName "${COMPANY}" +VIAddVersionKey CompanyWebsite "${URL}" +VIAddVersionKey FileVersion "" +VIAddVersionKey FileDescription "" +VIAddVersionKey LegalCopyright "" + +# set warning when cancelling install +!define MUI_ABORTWARNING + +# set welcome page +!define MUI_WELCOMEPAGE_TITLE "LAMS ${VERSION} Install Wizard" +!define MUI_WELCOMEPAGE_TEXT 'This wizard will guide you through updating your LAMS 2.0 with the latest language packs available.\r\n\r\n\ + This language pack requires that you have a working version of LAMS 2.0 installed\n\n\ + It is recommended that you close all other programs before continuing with the installation\r\n\r\n\ + Click next to continue' + +# set components page type +#!define MUI_COMPONENTSPAGE_SMALLDESC +!define MUI_COMPONENTSPAGE_NODESC +!define MUI_COMPONENTSPAGE_TEXT 'Existing language files will be backed up in:$\n\ + $\t "(lams install directory)\jboss-4.0.2\server\default\deploy\lams.ear\lams-dictionary.jar\lams-dictionary.zip"$\n$\n\ + Language Files will then be overwritten by the new LAMS Language Pack ${VERSION}' + + + + +!define MUI_FINISHPAGE +!define MUI_FINISHPAGE_TITLE "LAMS Language Pack ${VERSION} Installation Successfull" +!define MUI_FINISHPAGE_TITLE_3LINES +!define MUI_FINISHPAGE_TEXT "The LAMS Language Pack ${VERSION} has been successfully installed on your computer. \ + \r\n\r\nPlease restart LAMS so the changes made by the Language Pack can take effect" +!define MUI_FINISHPAGE_LINK "Visit LAMS Community" +!define MUI_FINISHPAGE_LINK_LOCATION "http://www.lamscommunity.org" +!define MUI_FINISHPAGE_NOAUTOCLOSE + +# installer screen pages +;-------------------------------- +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "${DOCUMENTS}\license.txt" +!insertmacro MUI_PAGE_COMPONENTS +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH +;-------------------------------- + +!insertmacro MUI_LANGUAGE "English" + +# Variables +;-------------------------------- +Var MYSQL_DIR +Var DB_NAME +Var DB_USER +Var DB_PASS +Var BACKUP_DIR +Var LAMS_DIR +Var VERSION_INT +Var FLASHXML_DIR +Var SQL_QUERY +Var FOLDER_FLAG +Var OLD_VERSION +${Array} RF_FOLDERS +${Array} CS_FOLDERS +${Array} FS_FOLDERS +;-------------------------------- + + +Section "LAMS Language Pack ${VERSION}" LanguagePack + ;make the section compulsory + SectionIn RO + + + Detailprint "${__TIMESTAMP__}" + Detailprint 'Writing Language pack version ${VERSION} to registry: "${REG_HEAD}"' + + setoutpath "$INSTDIR\zip" + File /r "${BASE_DIR}\zip\7za.exe" + + ;backup existing language files + call zipLanguages + + ; copy language files from LAMS projects to a folder in $INSTDIR + call copyProjects + + ; get the language files locations specific to this server from the database + ; unpack to $INSTDIR\library\llidx + call copyllid + + ; copy the flash dictionary files from central/web/flashxml to: + ; \server\default\lams.ear\lams-central.war\flashxml + call copyFlashxml + + ; Finally, add rows in the database (lams_supported_locale) for all new language files + call updateDatabase + + # write this language pack version to registry + WriteRegStr HKLM "${REG_HEAD}" "language_pack" $VERSION_INT + + DetailPrint "LAMS Language Pack ${VERSION} install successfull" +SectionEnd + + +# Installer functions +Function .onInit + InitPluginsDir + # select language + ;!insertmacro MUI_LANGDLL_DISPLAY + + #get the version in from the version date yyyy-mm-dd + call getVersionInt + + ;set the location of the temp folder for this installation + ;strcpy $TEMP '$INSTDIR\temp' + + # getting the mysql database details + ReadRegStr $MYSQL_DIR HKLM "${REG_HEAD}" "dir_mysql" + ReadRegStr $DB_NAME HKLM "${REG_HEAD}" "db_name" + ReadRegStr $DB_USER HKLM "${REG_HEAD}" "db_user" + ReadRegStr $DB_PASS HKLM "${REG_HEAD}" "db_pass" + + # Abort install if already installed or if a newer version is installed + strcpy $OLD_VERSION "20061205" ;default old version (Date of First language pack of LAMS2) + ReadRegStr $0 HKLM "${REG_HEAD}" "language_pack" + ${VersionCompare} "$VERSION_INT" "$0" $1 + ${If} $1 == "0" + MessageBox MB_OK|MB_ICONSTOP "You already have LAMS-LanguagePack-${VERSION} installed" + Abort + ${EndIf} + ${if} $1 == "2" + MessageBox MB_OK|MB_ICONSTOP "Your current language pack is a newer version than this version: LAMS-LanguagePack-$0" + Abort + ${EndIf} + ${If} $0 != "" + strcpy $OLD_VERSION $0 + ${EndIf} + + # Abort if there is no version of LAMS2 installed + ReadRegStr $0 HKLM "${REG_HEAD}" "version" + ${If} $0 = "" + MessageBox MB_OK|MB_ICONSTOP "No version of LAMS 2.x is installed$\n$\n\ + Please install LAMS 2 before continuing" + Abort + ${EndIf} + + #set the installation directory + ReadRegStr $0 HKLM "${REG_HEAD}" "dir_inst" + strcpy $LAMS_DIR $0 + strcpy $INSTDIR "$0\jboss-4.0.2\server\default\deploy\lams.ear\lams-dictionary.jar\org\lamsfoundation\lams" +FunctionEnd + +Function .onInstSuccess + RMDir /r "$INSTDIR\zip" + RMDir /r "$EXEDIR\zip" + RMDir /r "$EXEDIR\build" + rmdir /r $TEMP\installer.properties" +FunctionEnd + +Function .onInstFailed + WriteRegStr HKLM "${REG_HEAD}" "language_pack" $OLD_VERSION + RMDir /r "$EXEDIR\zip" + RMDir /r "$EXEDIR\build" + delete "$INSTDIR\updateLocales.sql" + delete "$INSTDIR\LanguagePack.xml" + delete "$INSTDIR\installer.properties" + rmdir /r "$INSTDIR\apache-ant-1.6.5" + rmdir /r $TEMP\installer.properties" +FunctionEnd + +;backup existing language files +;zip to $INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-dictionary.jar\lams-dictionary-bak.zip +Function zipLanguages + strcpy $BACKUP_DIR "$LAMS_DIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-dictionary.jar\backup" + + detailprint 'Zipping existing files to "$BACKUP_DIR"' + + #zip existing language files + setoutpath $INSTDIR + ;rmdir /r "$BACKUP_DIR" + createdirectory "$BACKUP_DIR" + Strcpy $4 '$INSTDIR\zip\7za.exe a -r -tzip "$BACKUP_DIR\lamsDictionaryBak-$OLD_VERSION.zip" "*"' + nsExec::ExecToStack $4 + pop $8 + pop $9 + + ${if} $8 != 0 + goto failedzip + ${endif} + detailprint $8 + detailprint $9 + + setoutpath "$LAMS_DIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-central.war\" + Strcpy $4 '$INSTDIR\zip\7za.exe a -r -tzip "$BACKUP_DIR\lamsDictionaryBak-$OLD_VERSION.zip" "flashxml\*"' + nsExec::ExecToStack $4 + pop $8 + pop $9 + + #MessageBox MB_OK|MB_ICONSTOP "$9" + ${if} $8 != 0 + goto failedzip + ${endif} + detailprint $8 + detailprint $9 + + + detailprint 'backupdir: $BACKUP_DIR' + detailprint 'instdir: $INSTDIR' + detailprint '$4' + detailprint 'done' + goto finish + + failedzip: + DetailPrint "7za.exe zip failed" + MessageBox MB_OK|MB_ICONSTOP "LAMS configuration failed. Please check your LAMS configuration and try again.$\r$\nError:$\r$\n$\r$\n$9" + Abort "LAMS configuration failed." + finish: +FunctionEnd + +Function getVersionInt + push ${VERSION} + push "-" + push 0 + push 1 + call Strtok + pop $VERSION_INT + + push ${VERSION} + push "-" + push 1 + push 1 + call Strtok + pop $0 + strcpy $VERSION_INT "$VERSION_INT$0" + + push ${VERSION} + push "-" + push 2 + push 1 + call Strtok + pop $0 + strcpy $VERSION_INT "$VERSION_INT$0" + +FunctionEnd + +; copies all the lams_blah project language files from lams_blah/conf/languages +; files are compresses then extracted to the jboss language directory: +; C:\lams\jboss-4.0.2\server\default\deploy\lams.ear\lams-dictionary.jar\org\lamsfoundation\lams +Function copyProjects + + ;copying COMMON project language files + setoutpath "$INSTDIR" + detailprint "Extracting language files for lams_common" + file /a "${BASE_PROJECT_DIR}\lams_common\build\lib\language\org\lamsfoundation\lams\*" + + ;copying ADMIN project language files + setoutpath "$INSTDIR\admin" + detailprint "Extracting language files for lams_admin" + file /a "${BASE_PROJECT_DIR}\lams_admin\build\lib\language\org\lamsfoundation\lams\admin\*" + + ;copying CENTRAL project language files + setoutpath "$INSTDIR\central" + detailprint "Extracting language files for lams_central" + file /a "${BASE_PROJECT_DIR}\lams_central\build\lib\language\org\lamsfoundation\lams\central\*" + + ;copying CONTENTREPOSITORY project language files + setoutpath "$INSTDIR\contentrepository" + detailprint "Extracting language files for lams_contentrepository" + file /a "${BASE_PROJECT_DIR}\lams_contentrepository\conf\language\*" + + ;copying LEARNING project language files + setoutpath "$INSTDIR\learning" + detailprint "Extracting language files for lams_learning" + file /a "${BASE_PROJECT_DIR}\lams_learning\build\lib\language\org\lamsfoundation\lams\learning\*" + + ;copying MONITORING project language files + setoutpath "$INSTDIR\monitoring" + detailprint "Extracting language files for lams_monitoring" + file /a "${BASE_PROJECT_DIR}\lams_monitoring\build\lib\language\org\lamsfoundation\lams\monitoring\*" + + ;copying TOOL_CHAT project language files + setoutpath "$INSTDIR\tool\chat" + detailprint "Extracting language files for lams_tool_chat" + file /a "${BASE_PROJECT_DIR}\lams_tool_chat\build\deploy\language\*" + + ;copying TOOL_FORUM project language files + setoutpath "$INSTDIR\tool\forum" + detailprint "Extracting language files for lams_tool_forum" + file /a "${BASE_PROJECT_DIR}\lams_tool_forum\build\deploy\language\*" + + ;copying TOOL_LAMC project language files + setoutpath "$INSTDIR\tool\mc" + detailprint "Extracting language files for lams_tool_lamc" + file /a "${BASE_PROJECT_DIR}\lams_tool_lamc\build\deploy\language\*" + + ;copying TOOL_LAQA project language files + setoutpath "$INSTDIR\tool\qa" + detailprint "Extracting language files for lams_tool_laqa" + file /a "${BASE_PROJECT_DIR}\lams_tool_laqa\build\deploy\language\*" + + ;copying TOOL_NOTEBOOK project language files + setoutpath "$INSTDIR\tool\notebook" + detailprint "Extracting language files for lams_tool_notebook" + file /a "${BASE_PROJECT_DIR}\lams_tool_notebook\build\deploy\language\*" + + ;copying TOOL_NB project language files + setoutpath "$INSTDIR\tool\noticeboard" + detailprint "Extracting language files for lams_tool_nb" + file /a "${BASE_PROJECT_DIR}\lams_tool_nb\build\deploy\language\*" + + ;copying TOOL_LARSRC project language files + setoutpath "$INSTDIR\tool\rsrc" + detailprint "Extracting language files for lams_tool_larsrc" + file /a "${BASE_PROJECT_DIR}\lams_tool_larsrc\build\deploy\language\*" + + ;copying TOOL_SBMT project language files + setoutpath "$INSTDIR\tool\sbmt" + detailprint "Extracting language files for lams_tool_sbmt" + file /a "${BASE_PROJECT_DIR}\lams_tool_sbmt\build\deploy\language\*" + + ;copying TOOL_SCRIBE project language files + setoutpath "$INSTDIR\tool\scribe" + detailprint "Extracting language files for lams_tool_scribe" + file /a "${BASE_PROJECT_DIR}\lams_tool_scribe\build\deploy\language\*" + + ;copying TOOL_SURVEY project language files + setoutpath "$INSTDIR\tool\survey" + detailprint "Extracting language files for lams_tool_survey" + file /a "${BASE_PROJECT_DIR}\lams_tool_survey\build\deploy\language\*" + + ;copying TOOL_VOTE project language files + setoutpath "$INSTDIR\tool\vote" + detailprint "Extracting language files for lams_tool_vote" + file /a "${BASE_PROJECT_DIR}\lams_tool_vote\build\deploy\language\*" +FunctionEnd + +; copys the files from lams_central/web/flashxml to: +; "/\server\default\lams.ear\lams-central.war\flashxml +Function copyFlashxml + strcpy $FLASHXML_DIR "$LAMS_DIR\jboss-4.0.2\server\default\deploy\lams.ear\lams-central.war\flashxml" + setoutpath $FLASHXML_DIR + detailprint "Extracting language files for FLASH" + file /a /r /x "CVS" "${BASE_PROJECT_DIR}\lams_central\web\flashxml\*" + detailprint "DONE!" +FunctionEnd + + +; first, finds the location of the language files in the database +; then copy the required files to the dirname +Function copyllid + + ${CS_FOLDERS->Init} + ${FS_FOLDERS->Init} + ${RF_FOLDERS->Init} + + ; getting the rows for Chat and Scribe + strcpy $SQL_QUERY '"SELECT learning_library_id FROM lams_learning_library WHERE title = $\'Chat and Scribe$\';"' + strcpy $SQL_QUERY '"$MYSQL_DIR\bin\mysql.exe" -u"$DB_USER" -p"$DB_PASS" -s -i -B $DB_NAME -e $SQL_QUERY' + strcpy $FOLDER_FLAG "0" + call executeSQLScript + pop $0 + #detailprint "SQL script result for Chat and Scribe: $\n$0" + + ; getting the rows for Forum and Scribe + strcpy $SQL_QUERY '"SELECT learning_library_id FROM lams_learning_library WHERE title = $\'Forum and Scribe$\';"' + strcpy $SQL_QUERY '"$MYSQL_DIR\bin\mysql.exe" -u"$DB_USER" -p"$DB_PASS" -s -i -B $DB_NAME -e $SQL_QUERY' + strcpy $FOLDER_FLAG "1" + call executeSQLScript + pop $0 + #detailprint "SQL script result for Forum and Scribe: $\n$0" + + ; getting the rows for Resources and Forum + strcpy $SQL_QUERY '"SELECT learning_library_id FROM lams_learning_library WHERE title = $\'Resources and Forum$\';"' + strcpy $SQL_QUERY '"$MYSQL_DIR\bin\mysql.exe" -u"$DB_USER" -p"$DB_PASS" -s -i -B $DB_NAME -e $SQL_QUERY' + strcpy $FOLDER_FLAG "2" + call executeSQLScript + pop $0 + #detailprint "SQL script result for Resource and Forum: $\n$0" + + ; copy all the folders for llid Chat and Scribe + IntOp $R0 "$CS_FOLDERS_UBound" + 1 + ${do} + ${CS_FOLDERS->Get} $CS_FOLDERS_UBound $R1 + ${CS_FOLDERS->Delete} $CS_FOLDERS_UBound + IntOp $R0 "$CS_FOLDERS_UBound" + 1 + #MessageBox MB_OK|MB_ICONEXCLAMATION "Chat and Scribe: $R1 $\nElements $R0" + + setoutpath "$INSTDIR\library\llid$R1" + detailprint "Copying language files for chat and scribe" + file /a "${BASE_PROJECT_DIR}\lams_build\librarypackages\chatscribe\language\lams\*" + + ${loopuntil} $R0 == "0" + + ; copy all the folders for llid Forum and Scribe + IntOp $R0 "$FS_FOLDERS_UBound" + 1 + ${do} + ${FS_FOLDERS->Get} $FS_FOLDERS_UBound $R1 + ${FS_FOLDERS->Delete} $FS_FOLDERS_UBound + IntOp $R0 "$FS_FOLDERS_UBound" + 1 + #MessageBox MB_OK|MB_ICONEXCLAMATION "Forum and Scribe: $R1 $\nElements $R0" + + setoutpath "$INSTDIR\library\llid$R1" + detailprint "Copying language files for forum and scribe" + file /a "${BASE_PROJECT_DIR}\lams_build\librarypackages\forumscribe\language\lams\*" + ${loopuntil} $R0 == "0" + + ; copy all the folders for llid Resource and Forum + IntOp $R0 "$RF_FOLDERS_UBound" + 1 + ; copy all the folders for llid Forum and Scribe + IntOp $R0 "$FS_FOLDERS_UBound" + 1 + ${do} + ${RF_FOLDERS->Get} $RF_FOLDERS_UBound $R1 + ${RF_FOLDERS->Delete} $RF_FOLDERS_UBound + IntOp $R0 "$RF_FOLDERS_UBound" + 1 + #MessageBox MB_OK|MB_ICONEXCLAMATION "Resource and Forum: $R1 $\nElements $R0" + setoutpath "$INSTDIR\library\llid$R1" + detailprint "Copying language files for resource and forum" + file /a "${BASE_PROJECT_DIR}\lams_build\librarypackages\shareresourcesforum\language\lams\*" + ${loopuntil} $R0 == "0" + +FunctionEnd + + + +; Executing sql scripts +; Puts the result of sql script on the stack +Function executeSQLScript + nsExec::ExecToStack $SQL_QUERY + detailprint $SQL_QUERY + pop $0 + pop $1 + + #check for errors and write result to install window + ${if} $0 != 0 + goto Errors + ${endif} + + strcpy $1 $1 -2 + push $1 + + ; Getting the muliple entries out + ${while} $1 != "" + push "$\n" + push $1 + call SplitFirstStrPart + pop $R0 + pop $1 + + ${if} $FOLDER_FLAG == "0" + ${CS_FOLDERS->Push} $R0 + #MessageBox MB_OK|MB_ICONEXCLAMATION "Chat and scribe: $R0 $\n" + ${endif} + ${if} $FOLDER_FLAG == "1" + ${FS_FOLDERS->Push} $R0 + #MessageBox MB_OK|MB_ICONEXCLAMATION "Forum and Scribe: $R0" + ${endif} + ${if} $FOLDER_FLAG == "2" + ${RF_FOLDERS->Push} $R0 + #MessageBox MB_OK|MB_ICONEXCLAMATION "Resource and Forum: $R0" + ${endif} + ${endwhile} + + goto Finish + Errors: + DetailPrint "Can't read from $MYSQL_DIR\$DB_NAME database" + MessageBox MB_OK|MB_ICONSTOP "LAMS configuration failed. Please check you database name, user and password are set the same as when you installed LAMS$\r$\nError:$\r$\n$\r$\n$1" + Abort "LAMS configuration failed." + Finish: + clearerrors + +FunctionEnd + +Function SplitFirstStrPart + Exch $R0 + Exch + Exch $R1 + Push $R2 + Push $R3 + StrCpy $R3 $R1 + StrLen $R1 $R0 + IntOp $R1 $R1 + 1 + loop: + IntOp $R1 $R1 - 1 + StrCpy $R2 $R0 1 -$R1 + StrCmp $R1 0 exit0 + StrCmp $R2 $R3 exit1 loop + exit0: + StrCpy $R1 "" + Goto exit2 + exit1: + IntOp $R1 $R1 - 1 + StrCmp $R1 0 0 +3 + StrCpy $R2 "" + Goto +2 + StrCpy $R2 $R0 "" -$R1 + IntOp $R1 $R1 + 1 + StrCpy $R0 $R0 -$R1 + StrCpy $R1 $R2 + exit2: + Pop $R3 + Pop $R2 + Exch $R1 ;rest + Exch + Exch $R0 ;first +FunctionEnd + +;checks if the languages in the language pack exist +;inserts rows into lams_supported_locale iff the languages dont exist +Function updateDatabase + + ; get the procedure scripts required + setoutpath "$INSTDIR" + File /a ${SQL}\updateLocales.sql + File /a ${ANT}\LanguagePack.xml + + + setoutpath "$INSTDIR\apache-ant-1.6.5\bin" + File /a "${BASE_DIR}\apache-ant-1.6.5\bin\*" + + setoutpath "$INSTDIR\apache-ant-1.6.5\lib" + File /a "${BASE_DIR}\apache-ant-1.6.5\lib\*" + + ; update locals must be stored as a procedure first + ; nsExec wont let me do "mysql < insertLocale.sql" so i had to use ant + ; create installer.properties + ClearErrors + FileOpen $0 $TEMP\installer.properties w + IfErrors 0 +2 + goto error + + # convert '\' to '/' for Ant's benefit + Push $TEMP + Push "\" + Call StrSlash + Pop $2 + FileWrite $0 "TEMP=$2$\r$\n" + + Push $INSTDIR + Push "\" + Call StrSlash + Pop $2 + FileWrite $0 "INSTDIR=$2/$\r$\n" + FileWrite $0 "DB_NAME=$DB_NAME$\r$\n" + FileWrite $0 "DB_USER=$DB_USER$\r$\n" + FileWrite $0 "DB_PASS=$DB_PASS$\r$\n" + Push $LAMS_DIR + Push "\" + Call StrSlash + Pop $2 + FileWrite $0 "EARDIR=$2/jboss-4.0.2/server/default/deploy/lams.ear$\r$\n" + + copyfiles "$TEMP\installer.properties" $INSTDIR + + SetOutPath $INSTDIR + File /a "${ANT}\LanguagePack.xml" + + ; update locals must be stored as a procedure first + ; use ANT to store procedures + DetailPrint '$INSTDIR\apache-ant-1.6.5\bin\ant.bat insertLocale-db' + nsExec::ExecToStack '$INSTDIR\apache-ant-1.6.5\bin\ant.bat -buildfile $INSTDIR\LanguagePack.xml insertLocale-db' + Pop $0 ; return code, 0=success, error=fail + Pop $1 ; console output + DetailPrint "Database insert status: $0" + DetailPrint "Database insert output: $1" + ${if} $0 != 0 + goto error + ${endif} + + goto done + error: + DetailPrint "Ant insertLocale-db failed." + MessageBox MB_OK|MB_ICONSTOP "LAMS configuration failed. Please check your LAMS configuration and try again.$\r$\nError:$\r$\n$\r$\n$1" + Abort "LAMS configuration failed." + + done: + ; remove the sql scripts + delete "$INSTDIR\updateLocales.sql" + delete "$INSTDIR\LanguagePack.xml" + delete "$INSTDIR\installer.properties" + rmdir /r "$INSTDIR\apache-ant-1.6.5" + +FunctionEnd + + Index: win_installer/utils/src/revert-dir.ini =================================================================== diff -u --- win_installer/utils/src/revert-dir.ini (revision 0) +++ win_installer/utils/src/revert-dir.ini (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,26 @@ +[Settings] +NumFields=3 +NextButtonText=Restore LAMS + +[Field 1] +Type=Label +Left=15 +Top=118 +Right=76 +Bottom=129 +Text=LAMS backup dir: + +[Field 2] +Type=DirRequest +Left=76 +Top=116 +Right=270 +Bottom=129 + +[Field 3] +Type=Label +Left=15 +Top=4 +Right=284 +Bottom=108 +Text=Welcome to the LAMS Reverter!\r\n\r\nThis wizard will guide you through the process of restoring a previous LAMS installation after an update.\r\n\r\nYou should only use this utility if you have had a failed upgrade, or your upgrade is not working properly.\r\n\r\nTo restore your lams installation manually, follow the instrucations at:\r\nhttp://wiki.lamsfoundation.org/display/lamsdocs/Revert+To+Other+Backup\r\n\r\nEnter the directory LAMS was backed up to using the backup utility and the reverter will do the rest. Index: win_installer/utils/src/revert.nsi =================================================================== diff -u --- win_installer/utils/src/revert.nsi (revision 0) +++ win_installer/utils/src/revert.nsi (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,585 @@ +/**************************************************************** + * Copyright (C) 2006 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + * Coded by Luke Foxton (lfoxton@melcoe.mq.edu.au) + */ + +# includes +!include "MUI.nsh" +!include "LogicLib.nsh" +!include "includes\Backup.nsh" + +#defines +!define REG_HEAD "Software\LAMS Foundation\LAMSv2" +!define MUI_ICON "..\graphics\lams2.ico" + +# Installer attributes +Name "LAMS Restore Utility" +BrandingText "LAMS Restore Utility" +OutFile "..\..\build\lams-restore.exe" +InstallDir "C:\lams" +Icon ..\graphics\lams2.ico +InstallDirRegKey HKLM "${REG_HEAD}" "" +VIProductVersion 2.0.0.0 +VIAddVersionKey ProductName "LAMS Restore Utility" +VIAddVersionKey ProductVersion "1.0" +VIAddVersionKey CompanyName "LAMS International" +VIAddVersionKey CompanyWebsite "lamscommunity.org" +VIAddVersionKey FileVersion "" +VIAddVersionKey FileDescription "" +VIAddVersionKey LegalCopyright "" + +!define MUI_FINISHPAGE_TEXT "LAMS has been successfully Restored on your computer" + +# set warning when cancelling install +!define MUI_ABORTWARNING +Page custom PreRevertDir PostRevertDir +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH +!insertmacro MUI_LANGUAGE "English" + + +# variables +Var DB_NAME +Var DB_USER +Var DB_PASS +Var REPOSITORY_DIR +Var VERSION +Var MYSQL_DIR +Var BACKUP_DIR +Var SERVER_VERSION +Var LANG_VERSION +Var LANG_VERSION_INT + +ReserveFile "revert-dir.ini" + +Section Revert + ;make the section compulsory + SectionIn RO + + ; getting the required settings to revert from the register + call readRegister + + call revertFiles + + detailprint "Restoring back to old database" + call revertDatabase + + detailprint "Updating registry with current values" + call updateRegistry +SectionEnd + +Function .onInit + SetOutPath $TEMP + File "..\..\build\LocalPortScanner.class" + ReadRegStr $0 HKLM "${REG_HEAD}" "lams_port" + ReadRegStr $1 HKLM "${REG_HEAD}" "dir_jdk" + Goto checklams + + checklams: + nsExec::ExecToStack "$1\bin\java LocalPortScanner $0" + Pop $2 + ${If} $2 == 2 + MessageBox MB_YESNO|MB_ICONQUESTION "LAMS appears to be running. LAMS must be stopped before the restore can take place (will take a few seconds).$\r$\n$\r$\nDo you wish to continue? Click Yes to shutdown LAMS and restore, or click No to cancel the restore." \ + IDYES stoplams \ + IDNO quitrevert + ${EndIf} + goto continue + stoplams: + nsExec::ExecToStack 'sc stop LAMSv2' + Pop $0 + Pop $1 + DetailPrint "Sent stop command to LAMS service." + # sleep for 10s to ensure that JBoss closes properly + sleep 10000 + Goto checklams + quitrevert: + Delete "$TEMP\LocalPortScanner.class" + Abort + continue: + Delete "$TEMP\LocalPortScanner.class" + + ReadRegStr $INSTDIR HKLM "${REG_HEAD}" "dir_inst" + ${if} $INSTDIR == "" + MessageBox MB_OK|MB_ICONEXCLAMATION "Could not find LAMS installation in registry" + Abort + ${endif} + + ReadRegStr $DB_NAME HKLM "${REG_HEAD}" "db_name" + ReadRegStr $DB_USER HKLM "${REG_HEAD}" "db_user" + ReadRegStr $DB_PASS HKLM "${REG_HEAD}" "db_pass" + ReadRegStr $MYSQL_DIR HKLM "${REG_HEAD}" "dir_mysql" + call CheckMySQL + + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "revert-dir.ini" +FunctionEnd + +Function PreRevertDir + !insertmacro MUI_INSTALLOPTIONS_WRITE "revert-dir.ini" "Field 1" "State" "$BACKUP_DIR" + !insertmacro MUI_HEADER_TEXT "Revert to Earlier LAMS Installation" "Enter the directory LAMS was backed up to and the Restorer will do the rest" + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "revert-dir.ini" +FunctionEnd + +Function PostRevertDir + !insertmacro MUI_INSTALLOPTIONS_READ $BACKUP_DIR "revert-dir.ini" "Field 2" "State" + ${if} $BACKUP_DIR == "" + MessageBox MB_OK|MB_ICONEXCLAMATION "The directory entered is not valid: $\r$\n$BACKUP_DIR" + Abort + ${endif} + + iffileexists $BACKUP_DIR continue notexists + iffileexists "$BACKUP_DIR\jboss-4.0.2" continue notexists + goto continue + notexists: + MessageBox MB_OK|MB_ICONEXCLAMATION "Could not find a LAMS backup: $\r$\n$BACKUP_DIR" + continue: +FunctionEnd + +Function CheckMySQL + # Checking if the given database name already exists in the mysql database list + #ifFileExists "$MYSQL_DIR\data\$DB_NAME\*.*" stoprevert NoDatabaseNameExists + #stoprevert + # MessageBox MB_OK|MB_ICONSTOP "Could not find database $DB_NAME. Please check your database settings and try again" + # quit + #NoDatabaseNameExists: + + + # check mysql version is 5.0.x + nsExec::ExecToStack '$MYSQL_DIR\bin\mysqladmin --version' + Pop $0 + Pop $1 + ${If} $1 == "" ; if mySQL install directory field is empty, do not continue + MessageBox MB_OK|MB_ICONSTOP "Your MySQL directory does not appear to be valid, please enter a valid MySQL directory before continuing.$\r$\n$\r$\n$1" + Abort + ${EndIf} + + ${StrStr} $0 $1 "5.0" + + ${If} $0 == "" ; if not 5.0.x, check 5.1.x + ${StrStr} $0 $1 "5.1" + ${If} $0 == "" + MessageBox MB_OK|MB_ICONSTOP "Your MySQL version does not appear to be compatible with LAMS (5.0.x or 5.1.x): $\r$\n$\r$\n$1" + MessageBox MB_OK|MB_ICONSTOP "Your MySQL directory does not appear to be valid, please enter a valid MySQL directory before continuing.$\r$\n$\r$\n$1" + Abort + ${endif} + ${EndIf} +FunctionEnd + +Function readRegister + ReadRegStr $INSTDIR HKLM "${REG_HEAD}" "dir_inst" + ReadRegStr $DB_NAME HKLM "${REG_HEAD}" "db_name" + ReadRegStr $DB_USER HKLM "${REG_HEAD}" "db_user" + ReadRegStr $DB_PASS HKLM "${REG_HEAD}" "db_pass" + ReadRegStr $MYSQL_DIR HKLM "${REG_HEAD}" "dir_mysql" + ReadRegStr $REPOSITORY_DIR HKLM "${REG_HEAD}" "dir_repository" +FunctionEnd + +Function revertfiles + rmdir /r "$INSTDIR\jboss-4.0.2" + rmdir /r "$REPOSITORY_DIR" + rmdir /r "$INSTDIR\dump" + detailprint "Copying files back to $INSTDIR" + createdirectory $REPOSITORY_DIR + + DetailPrint "Restoring LAMS files. This may take a few minutes" + SetDetailsPrint listonly + copyfiles /SILENT "$BACKUP_DIR\repository\*" $REPOSITORY_DIR + copyfiles /SILENT "$BACKUP_DIR\*" "$INSTDIR" + SetDetailsPrint listonly +Functionend + +Function revertDatabase + StrCpy $0 '"$MYSQL_DIR\bin\mysql" -u$DB_USER -p$DB_PASS -e' + + StrCpy $1 '$0 "SET FOREIGN_KEY_CHECKS=0"' + DetailPrint $1 + nsExec::ExecToStack $1 + Pop $3 + Pop $4 + ${If} $3 == 1 + detailprint "Problem setting foreign key checks to 0" + goto error + ${EndIf} + + Detailprint "Removing LAMS database" + StrCpy $1 '$0 "drop database if exists $DB_NAME"' + DetailPrint $1 + nsExec::ExecToStack $1 + Pop $3 + Pop $4 + ${If} $3 == 1 + detailprint "Problem deleting database" + goto error + ${EndIf} + + Detailprint "Creating LAMS database" + StrCpy $1 '$0 "create database $DB_NAME default character set utf8"' + DetailPrint $1 + nsExec::ExecToStack $1 + Pop $3 + Pop $4 + ${If} $3 == 1 + detailprint "Problem creating database" + goto error + ${EndIf} + + StrCpy $1 '$0 "SET FOREIGN_KEY_CHECKS=1"' + DetailPrint $1 + nsExec::ExecToStack $1 + Pop $3 + Pop $4 + ${If} $3 == 1 + detailprint "Problem setting foreign key checks to 1" + goto error + ${EndIf} + + + # extract ant + SetOutPath $TEMP + File /r "..\..\apache-ant-1.6.5" + File "ant\revert.xml" + + # create installer.properties + ClearErrors + FileOpen $0 "$TEMP\revert.properties" w + IfErrors error +1 + + + # convert '\' to '/' for Ant's benefit + Push "$INSTDIR\jboss-4.0.2\server\default\deploy\lams.ear" + Push "\" + Call StrSlash + Pop $2 + + Push "$BACKUP_DIR" + Push "\" + Call StrSlash + Pop $3 + + filewrite $0 "EARDIR=$2$\r$\n" + IfErrors error +1 + + filewrite $0 "BACKUP_DIR=$3$\r$\n" + IfErrors error +1 + + filewrite $0 "DB_NAME=$DB_NAME$\r$\n" + IfErrors error +1 + + filewrite $0 "DB_USER=$DB_USER$\r$\n" + IfErrors error +1 + + filewrite $0 "DB_PASS=$DB_PASS$\r$\n" + IfErrors error +1 + + FileClose $0 + IfErrors error +1 + + + + strcpy $5 "$TEMP\apache-ant-1.6.5\bin\ant.bat -buildfile $TEMP\revert.xml -logfile $INSTDIR\restore.log revert-db" + detailprint $5 + nsExec::ExecToStack $5 + Pop $3 + Pop $4 + ${If} $3 == 1 + detailprint "Problem Restoring database" + goto error + ${EndIf} + + goto done + error: + MessageBox MB_OK|MB_ICONSTOP "Database setup failed. Please check your MySQL configuration and try again.$\r$\nError:$\r$\n$\r$\n$4" + rmdir "$TEMP\apache-ant-1.6.5" + delete "$TEMP\revert.xml" + delete "$TEMP\revert.properties" + Abort "Database setup failed." + done: + rmdir "$TEMP\apache-ant-1.6.5" + delete "$TEMP\revert.xml" + delete "$TEMP\revert.properties" +Functionend + +Function updateRegistry + strcpy $0 '"SELECT config_value FROM lams_configuration WHERE config_key = $\'Version$\';"' + strcpy $0 '"$MYSQL_DIR\bin\mysql.exe" -u"$DB_USER" -p"$DB_PASS" -s -i -B $DB_NAME -e $0' + nsExec::ExecToStack $0 + pop $1 + pop $VERSION + ${If} $0 == 1 + detailprint "Problem reading database" + goto error + ${EndIf} + + strcpy $0 '"SELECT config_value FROM lams_configuration WHERE config_key = $\'ServerVersionNumber$\';"' + strcpy $0 '"$MYSQL_DIR\bin\mysql.exe" -u"$DB_USER" -p"$DB_PASS" -s -i -B $DB_NAME -e $0' + nsExec::ExecToStack $0 + pop $1 + pop $SERVER_VERSION + ${If} $0 == 1 + detailprint "Problem reading database" + goto error + ${EndIf} + + + strcpy $0 '"SELECT config_value FROM lams_configuration WHERE config_key = $\'DictionaryDateCreated$\';"' + strcpy $0 '"$MYSQL_DIR\bin\mysql.exe" -u"$DB_USER" -p"$DB_PASS" -s -i -B $DB_NAME -e $0' + nsExec::ExecToStack $0 + pop $1 + pop $LANG_VERSION + ${If} $0 == 1 + detailprint "Problem reading database" + goto error + ${EndIf} + + call getVersionInt + + + strcpy $VERSION $VERSION -2 + strcpy $LANG_VERSION_INT $LANG_VERSION_INT -2 + strcpy $SERVER_VERSION $SERVER_VERSION -2 + + WriteRegStr HKLM "${REG_HEAD}" "version" $VERSION + WriteRegStr HKLM "${REG_HEAD}" "language_pack" $LANG_VERSION_INT + WriteRegStr HKLM "${REG_HEAD}" "server_version" $SERVER_VERSION + + goto done + error: + MessageBox MB_OK|MB_ICONSTOP "Registryy setup failed. Please check your MySQL configuration and try again.$\r$\nError:$\r$\n$\r$\n$1" + done: +Functionend + +; Convert version string into a integer +Function getVersionInt + push $LANG_VERSION + push "-" + push 0 + push 1 + call Strtok + pop $LANG_VERSION_INT + + push $LANG_VERSION + push "-" + push 1 + push 1 + call Strtok + pop $0 + strcpy $LANG_VERSION_INT "$LANG_VERSION_INT$0" + + push $LANG_VERSION + push "-" + push 2 + push 1 + call Strtok + pop $0 + strcpy $LANG_VERSION_INT "$LANG_VERSION_INT$0" + +FunctionEnd + + +# http://nsis.sourceforge.net/Another_String_Replace_%28and_Slash/BackSlash_Converter%29 +# +; Push $filenamestring (e.g. 'c:\this\and\that\filename.htm') +; Push "\" +; Call StrSlash +; Pop $R0 +; ;Now $R0 contains 'c:/this/and/that/filename.htm' +Function StrSlash + Exch $R3 ; $R3 = needle ("\" or "/") + Exch + Exch $R1 ; $R1 = String to replacement in (haystack) + Push $R2 ; Replaced haystack + Push $R4 ; $R4 = not $R3 ("/" or "\") + Push $R6 + Push $R7 ; Scratch reg + StrCpy $R2 "" + StrLen $R6 $R1 + StrCpy $R4 "\" + StrCmp $R3 "/" loop + StrCpy $R4 "/" +loop: + StrCpy $R7 $R1 1 + StrCpy $R1 $R1 $R6 1 + StrCmp $R7 $R3 found + StrCpy $R2 "$R2$R7" + StrCmp $R1 "" done loop +found: + StrCpy $R2 "$R2$R4" + StrCmp $R1 "" done loop +done: + StrCpy $R3 $R2 + Pop $R7 + Pop $R6 + Pop $R4 + Pop $R2 + Pop $R1 + Exch $R3 +FunctionEnd + +!define StrTok "!insertmacro StrTok" + +!macro StrTok ResultVar String Separators ResultPart SkipEmptyParts + Push "${String}" + Push "${Separators}" + Push "${ResultPart}" + Push "${SkipEmptyParts}" + Call StrTok + Pop "${ResultVar}" +!macroend + +Function StrTok +/*After this point: + ------------------------------------------ + $0 = SkipEmptyParts (input) + $1 = ResultPart (input) + $2 = Separators (input) + $3 = String (input) + $4 = SeparatorsLen (temp) + $5 = StrLen (temp) + $6 = StartCharPos (temp) + $7 = TempStr (temp) + $8 = CurrentLoop + $9 = CurrentSepChar + $R0 = CurrentSepCharNum + */ + + ;Get input from user + Exch $0 + Exch + Exch $1 + Exch + Exch 2 + Exch $2 + Exch 2 + Exch 3 + Exch $3 + Exch 3 + Push $4 + Push $5 + Push $6 + Push $7 + Push $8 + Push $9 + Push $R0 + + ;Parameter defaults + ${IfThen} $2 == `` ${|} StrCpy $2 `|` ${|} + ${IfThen} $1 == `` ${|} StrCpy $1 `L` ${|} + ${IfThen} $0 == `` ${|} StrCpy $0 `0` ${|} + + ;Get "String" and "Separators" length + StrLen $4 $2 + StrLen $5 $3 + ;Start "StartCharPos" and "ResultPart" counters + StrCpy $6 0 + StrCpy $8 -1 + + ;Loop until "ResultPart" is met, "Separators" is found or + ;"String" reaches its end + ResultPartLoop: ;"CurrentLoop" Loop + + ;Increase "CurrentLoop" counter + IntOp $8 $8 + 1 + + StrSearchLoop: + ${Do} ;"String" Loop + ;Remove everything before and after the searched part ("TempStr") + StrCpy $7 $3 1 $6 + + ;Verify if it's the "String" end + ${If} $6 >= $5 + ;If "CurrentLoop" is what the user wants, remove the part + ;after "TempStr" and itself and get out of here + ${If} $8 == $1 + ${OrIf} $1 == `L` + StrCpy $3 $3 $6 + ${Else} ;If not, empty "String" and get out of here + StrCpy $3 `` + ${EndIf} + StrCpy $R0 `End` + ${ExitDo} + ${EndIf} + + ;Start "CurrentSepCharNum" counter (for "Separators" Loop) + StrCpy $R0 0 + + ${Do} ;"Separators" Loop + ;Use one "Separators" character at a time + ${If} $R0 <> 0 + StrCpy $9 $2 1 $R0 + ${Else} + StrCpy $9 $2 1 + ${EndIf} + + ;Go to the next "String" char if it's "Separators" end + ${IfThen} $R0 >= $4 ${|} ${ExitDo} ${|} + + ;Or, if "TempStr" equals "CurrentSepChar", then... + ${If} $7 == $9 + StrCpy $7 $3 $6 + + ;If "String" is empty because this result part doesn't + ;contain data, verify if "SkipEmptyParts" is activated, + ;so we don't return the output to user yet + + ${If} $7 == `` + ${AndIf} $0 = 1 ;${TRUE} + IntOp $6 $6 + 1 + StrCpy $3 $3 `` $6 + StrCpy $6 0 + Goto StrSearchLoop + ${ElseIf} $8 == $1 + StrCpy $3 $3 $6 + StrCpy $R0 "End" + ${ExitDo} + ${EndIf} ;If not, go to the next result part + IntOp $6 $6 + 1 + StrCpy $3 $3 `` $6 + StrCpy $6 0 + Goto ResultPartLoop + ${EndIf} + + ;Increase "CurrentSepCharNum" counter + IntOp $R0 $R0 + 1 + ${Loop} + ${IfThen} $R0 == "End" ${|} ${ExitDo} ${|} + + ;Increase "StartCharPos" counter + IntOp $6 $6 + 1 + ${Loop} + +/*After this point: + ------------------------------------------ + $3 = ResultVar (output)*/ + + ;Return output to user + + Pop $R0 + Pop $9 + Pop $8 + Pop $7 + Pop $6 + Pop $5 + Pop $4 + Pop $0 + Pop $1 + Pop $2 + Exch $3 +FunctionEnd + Index: win_installer/utils/src/sql/updateLocales.sql =================================================================== diff -u --- win_installer/utils/src/sql/updateLocales.sql (revision 0) +++ win_installer/utils/src/sql/updateLocales.sql (revision a346e8c8f13dc57dfca4a13f75d0b4276969e207) @@ -0,0 +1,6 @@ +-- SQL script for language-pack.sql +-- checks if the languages in the language pack exist +-- inserts rows into lams_supported_locale iff the languages dont exist +UPDATE lams_configuration set config_value='2007-06-01' WHERE config_key='DictionaryDateCreated'; + +