Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
...
Checking mergeability… Don't worry, you can still create the pull request.
  • 19 commits
  • 157 files changed
  • 0 commit comments
  • 5 contributors
Commits on Oct 06, 2011
@mdentremont mdentremont Use this.getClass instead of hard coding the class type so that
subclasses will inherit a working .equals method
51f4c2b
@mdentremont mdentremont Remove calls to obj.equals(null) since these will always return false 2b0ec5f
@mdentremont mdentremont Add a null check 6d18d0b
@mdentremont mdentremont Use static Character.valueOf(char) instead of instantiating a new
character instance
e7a98fb
Commits on Jun 12, 2012
@genodeftest genodeftest Get all changes from SVN at sourceforge.net, up to date with 2.1.2
release
c443324
Commits on Jun 13, 2012
@genodeftest genodeftest Merge pull request #1 from v17al/master
Few quick changes
648e196
@genodeftest genodeftest [info] added README file again, now providing some information on RSSOwl
with many link
a356b83
@genodeftest genodeftest [info] added LICENSE file for Eclipse Public License v1.0 (EPL) 33dcd8d
Commits on Jul 04, 2012
@allati allati Limit maximum sync items in a call to Google Reader API
GR is refusing to process big payloads and responds with 400 HTTP error.
Limiting request size solves current sync problem which is caused by
long outstanding sync queue.
b6e3c47
@genodeftest genodeftest Merge pull request #2 from allati/master
[core] Bugfix for Google Reader sync 400 error on too much requests at a time
9e8143d
Commits on Jul 10, 2012
@genodeftest genodeftest [info] updated Readme, section "related projects" ef5deb5
@genodeftest genodeftest Merge branch 'master' of https://github.com/rssowl/RSSOwl.git e2ca9c7
Commits on Mar 15, 2013
@bpasero bpasero update to 2.1.6 and additional changes 90d38e1
Commits on Mar 22, 2013
@bpasero bpasero Update README.md edacb68
@bpasero bpasero Update README.md 8e7198a
Commits on Apr 27, 2013
@bpasero bpasero udate to latest 6ab45f8
@bpasero bpasero update 8a078cc
Commits on May 03, 2013
@bpasero bpasero Release 2.2 4d0d11d
Commits on Dec 30, 2013
@bpasero bpasero Update for 2.2.1 3069197
Showing with 3,993 additions and 427 deletions.
  1. +87 −0 LICENSE
  2. +0 −1  README
  3. +40 −0 README.md
  4. +12 −0 org.rssowl.build/.project
  5. +22 −0 org.rssowl.build/about.html
  6. +141 −0 org.rssowl.build/build-files/allElements.xml
  7. +47 −0 org.rssowl.build/build-files/ant-contrib-LICENSE.txt
  8. BIN  org.rssowl.build/build-files/ant-contrib.jar
  9. BIN  org.rssowl.build/build-files/automatedTests/eclipse-test-framework-3.3.2.zip
  10. BIN  org.rssowl.build/build-files/automatedTests/emma.jar
  11. BIN  org.rssowl.build/build-files/automatedTests/emma_ant.jar
  12. BIN  org.rssowl.build/build-files/automatedTests/org.pluginbuilder.autotestsuite.feature-0.4.0.200805030649NGT.zip
  13. +91 −0 org.rssowl.build/build-files/automatedTests/run-tests.properties
  14. +255 −0 org.rssowl.build/build-files/automatedTests/run-tests.xml
  15. +187 −0 org.rssowl.build/build-files/build.properties
  16. +35 −0 org.rssowl.build/build-files/build_rcp.properties
  17. +116 −0 org.rssowl.build/build-files/build_shared.xml
  18. +208 −0 org.rssowl.build/build-files/customTargets.xml
  19. +112 −0 org.rssowl.build/build-files/fetchSvnAll.xml
  20. BIN  org.rssowl.build/build-files/pluginbuilder-anttasks.jar
  21. +84 −0 org.rssowl.build/build-files/postBuild.xml
  22. +26 −0 org.rssowl.build/build-files/subversionSupport.xml
  23. +237 −0 org.rssowl.build/build.xml
  24. +26 −0 org.rssowl.build/build_local.properties
  25. +14 −0 org.rssowl.build/pluginbuilder.config
  26. +6 −0 org.rssowl.build/releases/HEAD.properties
  27. +80 −0 org.rssowl.build/rssowl.product
  28. +1 −1  org.rssowl.core.tests/Launch RSSOwl 2.0 Tests.launch
  29. +1 −1  org.rssowl.core.tests/META-INF/MANIFEST.MF
  30. +0 −2  org.rssowl.core.tests/src/org/rssowl/core/tests/NetworkTests.java
  31. +3 −1 org.rssowl.core.tests/src/org/rssowl/core/tests/connection/ConnectionTests.java
  32. +31 −6 org.rssowl.core.tests/src/org/rssowl/core/tests/model/ApplicationLayerTest.java
  33. +20 −20 org.rssowl.core.tests/src/org/rssowl/core/tests/model/NewsFilterTest.java
  34. +2 −0  org.rssowl.core.tests/src/org/rssowl/core/tests/ui/CleanUpTests.java
  35. +7 −3 org.rssowl.core.tests/src/org/rssowl/core/tests/ui/FolderNewsMarkTest.java
  36. +1 −1  org.rssowl.core/META-INF/MANIFEST.MF
  37. +3 −1 org.rssowl.core/src/org/rssowl/core/IApplicationService.java
  38. +50 −7 org.rssowl.core/src/org/rssowl/core/connection/PlatformCredentialsProvider.java
  39. +3 −3 org.rssowl.core/src/org/rssowl/core/internal/ApplicationServiceImpl.java
  40. +96 −18 org.rssowl.core/src/org/rssowl/core/internal/LogBridge.java
  41. +9 −1 org.rssowl.core/src/org/rssowl/core/internal/connection/DefaultProtocolHandler.java
  42. +8 −0 org.rssowl.core/src/org/rssowl/core/internal/interpreter/DublinCoreNamespaceHandler.java
  43. +6 −3 org.rssowl.core/src/org/rssowl/core/internal/interpreter/RDFInterpreter.java
  44. +6 −3 org.rssowl.core/src/org/rssowl/core/internal/interpreter/RSSInterpreter.java
  45. +7 −2 org.rssowl.core/src/org/rssowl/core/internal/interpreter/json/JSONInterpreter.java
  46. +3 −3 org.rssowl.core/src/org/rssowl/core/internal/persist/Feed.java
  47. +19 −1 org.rssowl.core/src/org/rssowl/core/internal/persist/News.java
  48. +1 −1  org.rssowl.core/src/org/rssowl/core/internal/persist/Persistable.java
  49. +2 −1  org.rssowl.core/src/org/rssowl/core/internal/persist/Preference.java
  50. +3 −0  org.rssowl.core/src/org/rssowl/core/internal/persist/pref/DefaultPreferences.java
  51. 0  org.rssowl.core/src/org/rssowl/core/persist/event/runnable/AttachmentEventRunnable.java
  52. 0  org.rssowl.core/src/org/rssowl/core/persist/event/runnable/BookMarkEventRunnable.java
  53. 0  org.rssowl.core/src/org/rssowl/core/persist/event/runnable/CategoryEventRunnable.java
  54. 0  org.rssowl.core/src/org/rssowl/core/persist/event/runnable/EventRunnable.java
  55. 0  org.rssowl.core/src/org/rssowl/core/persist/event/runnable/EventType.java
  56. 0  org.rssowl.core/src/org/rssowl/core/persist/event/runnable/FeedEventRunnable.java
  57. 0  org.rssowl.core/src/org/rssowl/core/persist/event/runnable/FolderEventRunnable.java
  58. 0  org.rssowl.core/src/org/rssowl/core/persist/event/runnable/LabelEventRunnable.java
  59. 0  org.rssowl.core/src/org/rssowl/core/persist/event/runnable/NewsEventRunnable.java
  60. 0  org.rssowl.core/src/org/rssowl/core/persist/event/runnable/PersonEventRunnable.java
  61. 0  org.rssowl.core/src/org/rssowl/core/persist/event/runnable/SearchConditionEventRunnable.java
  62. 0  org.rssowl.core/src/org/rssowl/core/persist/event/runnable/SearchMarkEventRunnable.java
  63. +3 −0  org.rssowl.core/src/org/rssowl/core/persist/pref/Preference.java
  64. +13 −3 org.rssowl.core/src/org/rssowl/core/util/CoreUtils.java
  65. +2 −7 org.rssowl.core/src/org/rssowl/core/util/DateUtils.java
  66. +0 −1  org.rssowl.core/src/org/rssowl/core/util/Messages.java
  67. +3 −0  org.rssowl.core/src/org/rssowl/core/util/SyncUtils.java
  68. +0 −1  org.rssowl.core/src/org/rssowl/core/util/messages.properties
  69. +11 −0 org.rssowl.docs/.project
  70. +4 −0 org.rssowl.docs/.settings/org.eclipse.mylar.tasklist.prefs
  71. BIN  org.rssowl.docs/core/ClassDiagram.doc
  72. BIN  org.rssowl.docs/core/ClassDiagram.pdf
  73. BIN  org.rssowl.docs/core/core_concept.doc
  74. +195 −0 org.rssowl.docs/old/proposal.txt
  75. +225 −0 org.rssowl.docs/old/todo.txt
  76. BIN  org.rssowl.docs/ui/ui_concept.doc
  77. +1 −1  org.rssowl.feature.eclipse/feature.xml
  78. +1 −1  org.rssowl.feature.tests/feature.xml
  79. +1 −1  org.rssowl.feature/feature.xml
  80. +1 −1  org.rssowl.lib.db4o/META-INF/MANIFEST.MF
  81. +1 −1  org.rssowl.lib.httpclient/META-INF/MANIFEST.MF
  82. +0 −1  org.rssowl.lib.jdom/.settings/org.eclipse.core.resources.prefs
  83. +1 −1  org.rssowl.lib.jdom/META-INF/MANIFEST.MF
  84. +1 −1  org.rssowl.lib.lucene/META-INF/MANIFEST.MF
  85. +2 −2 org.rssowl.ui/Launch RSSOwl 2.0.launch
  86. +1 −1  org.rssowl.ui/META-INF/MANIFEST.MF
  87. +2 −2 org.rssowl.ui/about.ini
  88. +2 −2 org.rssowl.ui/config.ini
  89. BIN  org.rssowl.ui/icons/elcl16/languages.gif
  90. BIN  org.rssowl.ui/icons/obj16/classic_layout.gif
  91. BIN  org.rssowl.ui/icons/obj16/fav_vimeo.png
  92. BIN  org.rssowl.ui/icons/obj16/headlines_layout.gif
  93. BIN  org.rssowl.ui/icons/obj16/list_layout.gif
  94. BIN  org.rssowl.ui/icons/obj16/mono_archive.gif
  95. BIN  org.rssowl.ui/icons/obj16/mono_label.gif
  96. BIN  org.rssowl.ui/icons/obj16/mono_share.gif
  97. BIN  org.rssowl.ui/icons/obj16/mono_sticky.gif
  98. BIN  org.rssowl.ui/icons/obj16/newspaper_layout.gif
  99. BIN  org.rssowl.ui/icons/obj16/share_google_plus.gif
  100. BIN  org.rssowl.ui/icons/obj16/share_pocket.gif
  101. BIN  org.rssowl.ui/icons/obj16/share_readability.gif
  102. BIN  org.rssowl.ui/icons/obj16/vertical_layout.gif
  103. +81 −41 org.rssowl.ui/pack200jars.bat
  104. +5 −1 org.rssowl.ui/plugin.eclipse.properties
  105. +4 −4 org.rssowl.ui/plugin.eclipse.xml
  106. +10 −2 org.rssowl.ui/plugin.properties
  107. +76 −17 org.rssowl.ui/plugin.xml
  108. +6 −5 org.rssowl.ui/rssowl.product
  109. +15 −15 org.rssowl.ui/rssowl_installer.nsi
  110. +24 −8 org.rssowl.ui/src/org/rssowl/ui/internal/ApplicationActionBarAdvisor.java
  111. +4 −1 org.rssowl.ui/src/org/rssowl/ui/internal/ApplicationWorkbenchWindowAdvisor.java
  112. +42 −2 org.rssowl.ui/src/org/rssowl/ui/internal/Controller.java
  113. +22 −0 org.rssowl.ui/src/org/rssowl/ui/internal/FolderNewsMark.java
  114. +18 −0 org.rssowl.ui/src/org/rssowl/ui/internal/OwlUI.java
  115. +1 −1  org.rssowl.ui/src/org/rssowl/ui/internal/PreferencesInitializer.java
  116. +1 −1  org.rssowl.ui/src/org/rssowl/ui/internal/SplashHandler.java
  117. +30 −3 org.rssowl.ui/src/org/rssowl/ui/internal/actions/CopyLinkAction.java
  118. +66 −0 org.rssowl.ui/src/org/rssowl/ui/internal/actions/DownloadLanguagesAction.java
  119. +13 −1 org.rssowl.ui/src/org/rssowl/ui/internal/actions/FindExtensionsAction.java
  120. +1 −1  org.rssowl.ui/src/org/rssowl/ui/internal/actions/MakeNewsStickyAction.java
  121. +9 −0 org.rssowl.ui/src/org/rssowl/ui/internal/actions/MarkTypesReadAction.java
  122. +5 −0 org.rssowl.ui/src/org/rssowl/ui/internal/actions/Messages.java
  123. +5 −2 org.rssowl.ui/src/org/rssowl/ui/internal/actions/ToggleReadStateAction.java
  124. +61 −0 org.rssowl.ui/src/org/rssowl/ui/internal/actions/TranslateRSSOwlAction.java
  125. +195 −0 org.rssowl.ui/src/org/rssowl/ui/internal/actions/UnsubscribeGoogleReaderAction.java
  126. +5 −0 org.rssowl.ui/src/org/rssowl/ui/internal/actions/messages.properties
  127. +9 −1 org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/ConfirmDialog.java
  128. +0 −4 org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/Messages.java
  129. +1 −1  org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/cleanup/CleanUpOptionsPage.java
  130. +9 −4 org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/importer/ImportSourcePage.java
  131. +0 −4 org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/messages.properties
  132. +46 −31 org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/preferences/BrowserPreferencePage.java
  133. +13 −1 org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/preferences/FeedsPreferencePage.java
  134. +1 −0  org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/preferences/Messages.java
  135. +0 −13 org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/preferences/MiscPreferencePage.java
  136. +2 −1  org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/preferences/messages.properties
  137. +11 −0 org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/properties/RetentionPropertyPage.java
  138. +3 −1 org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/welcome/TutorialWizard.java
  139. +13 −13 org.rssowl.ui/src/org/rssowl/ui/internal/dialogs/welcome/messages.properties
  140. +2 −2 org.rssowl.ui/src/org/rssowl/ui/internal/editors/browser/WebBrowserView.java
  141. +116 −4 org.rssowl.ui/src/org/rssowl/ui/internal/editors/feed/FeedView.java
  142. +102 −16 org.rssowl.ui/src/org/rssowl/ui/internal/editors/feed/FilterBar.java
  143. +0 −1  org.rssowl.ui/src/org/rssowl/ui/internal/editors/feed/Messages.java
  144. +52 −6 org.rssowl.ui/src/org/rssowl/ui/internal/editors/feed/NewsBrowserLabelProvider.java
  145. +1 −0  org.rssowl.ui/src/org/rssowl/ui/internal/editors/feed/NewsBrowserViewer.java
  146. +7 −0 org.rssowl.ui/src/org/rssowl/ui/internal/editors/feed/NewsTableViewer.java
  147. +1 −2  org.rssowl.ui/src/org/rssowl/ui/internal/editors/feed/messages.properties
  148. +6 −0 org.rssowl.ui/src/org/rssowl/ui/internal/services/DownloadService.java
  149. +91 −76 org.rssowl.ui/src/org/rssowl/ui/internal/services/SyncService.java
  150. +106 −34 org.rssowl.ui/src/org/rssowl/ui/internal/util/CBrowser.java
  151. +17 −0 org.rssowl.update.sites/.project
  152. +22 −0 org.rssowl.update.sites/about.html
  153. +19 −0 org.rssowl.update.sites/addons/site.xml
  154. +7 −0 org.rssowl.update.sites/eclipse/site.xml
  155. +11 −0 org.rssowl.update.sites/nightly/site.xml
  156. +34 −0 org.rssowl.update.sites/nls/site.xml
  157. +14 −0 org.rssowl.update.sites/program/site.xml
View
87 LICENSE
@@ -0,0 +1,87 @@
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE 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 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. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation 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.
View
1  README
@@ -1 +0,0 @@
-Please visit http://wiki.rssowl.org/index.php/Contributors_First_Steps for more information how to contribute.
View
40 README.md
@@ -0,0 +1,40 @@
+RSSOwl
+======
+RSS Owl is a powerful application to organize, search and read your RSS, RDF & Atom news feeds in a comfortable way.
+Highlights are saved searches, google reader sync, notifications, filters, fast fulltext search and a flexible, clean user interface.
+http://rssowl.org/
+
+Build RSSOwl:
+-------------
+
+Please refer to the description at https://github.com/bpasero/rssowl-target
+
+RSSOwl links:
+-------------
+* SVN: https://rssowl.svn.sourceforge.net/svnroot/rssowl (browse online at http://rssowl.svn.sourceforge.net/viewvc/rssowl/ )
+* Web: http://rssowl.org/
+* FAQ: http://www.rssowl.org/help
+* Forum: https://sourceforge.net/projects/rssowl/forums
+* Wiki: http://wiki.rssowl.org/index.php/Main_Page
+* Tutorials: http://tutorial.rssowl.org/ now obsolete since integrated to RSSOwl under "Help | Tutorial"
+* Build HowTo: https://github.com/bpasero/rssowl-target
+* Eclipse Marketplace: http://marketplace.eclipse.org/content/rssowl-powerful-rss-rdf-atom-news-feed-reader-google-reader-synchronization
+* Freecode.com: http://freecode.com/projects/rssowl
+
+related projects:
+-----------------
+* some files for debian: https://github.com/resmo/rssowl-debian
+ * outdated: for RSSOwl 2.0.4
+* RSSOwl on getdeb.net: http://www.getdeb.net/software/RSSOwl
+ * maintained by Christoph Korn, https://launchpad.net/~c-korn
+ * http://archive.getdeb.net/getdeb/ubuntu/pool/apps/r/rssowl/
+ * http://www.getdeb.net/software/RSSOwl
+* Integration for facebook and Google mail: https://github.com/adv0r/rssowl-integration-fb-gmail
+ * status? contact?
+* german translation: https://bitbucket.org/KindOfAutomatic/rssowl-german-translation
+ * see translation repository here
+* https://code.google.com/p/rssowlspm/
+ * completed/finshed: added some features to RSSOwl and did some academic coding
+* forks on github.com: https://github.com/rssowl/RSSOwl/network/members
+
+See LICENSE file for RSSOwl's License, Eclipse Public License v1.0
View
12 org.rssowl.build/.project
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.rssowl.build</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ <nature>org.pluginbuilder.core.pluginBuilderNature</nature>
+ </natures>
+</projectDescription>
View
22 org.rssowl.build/about.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<title>About</title>
+<meta http-equiv=Content-Type content="text/html; charset=UTF-8">
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>(c) 2005-2011 RSSOwl Development Team</p>
+<h3>License</h3>
+
+<p>The RSSOwl Development Team makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available at <a href="http://www.rssowl.org/legal/epl-v10.html">http://www.rssowl.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the RSSOwl Development Team, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
+
+</body>
+</html>
View
141 org.rssowl.build/build-files/allElements.xml
@@ -0,0 +1,141 @@
+<project name="allElements delegation and assemble customTargets.xml">
+<!-- FILE WILL BE OVERWRITTEN WHEN GENERATED -->
+ <target name="allElementsExceptSvnFetch" unless="is.svn.fetch">
+ <antcall target="norcpbuild"/>
+ <antcall target="rcpbuild"/>
+ </target>
+
+ <target name="norcpbuild" unless="build.container.feature">
+ <ant antfile="${genericTargets}" target="${target}">
+ <property name="type" value="feature" />
+ <property name="id" value="org.rssowl" />
+ </ant>
+ <ant antfile="${genericTargets}" target="${target}">
+ <property name="type" value="feature" />
+ <property name="id" value="org.rssowl.contrib.nntp" />
+ </ant>
+ <ant antfile="${genericTargets}" target="${target}">
+ <property name="type" value="feature" />
+ <property name="id" value="org.rssowl.tests" />
+ </ant>
+ <ant antfile="${genericTargets}" target="${target}">
+ <property name="type" value="feature" />
+ <property name="id" value="org.rssowl.dependencies" />
+ </ant>
+ <ant antfile="${genericTargets}" target="${target}">
+ <property name="type" value="feature" />
+ <property name="id" value="org.rssowl.contrib.notes" />
+ </ant>
+ <ant antfile="${genericTargets}" target="${target}">
+ <property name="type" value="feature" />
+ <property name="id" value="org.rssowl.feature.contrib.feedhandler" />
+ </ant>
+ <ant antfile="${genericTargets}" target="${target}">
+ <property name="type" value="feature" />
+ <property name="id" value="org.rssowl.feature.contrib.tools" />
+ </ant>
+
+ </target>
+
+ <target name="rcpbuild" if="build.container.feature">
+ <ant antfile="${genericTargets}" target="${target}">
+ <property name="type" value="feature" />
+ <property name="id" value="org.eclipse.pde.build.container.feature" />
+ </ant>
+ </target>
+
+ <!-- generated assemble targets -->
+ <target name="assemble.org.rssowl">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="zipargs" value="" />
+ </ant>
+ </target>
+ <target name="assemble.org.rssowl.contrib.nntp">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="zipargs" value="" />
+ </ant>
+ </target>
+ <target name="assemble.org.rssowl.tests">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="zipargs" value="" />
+ </ant>
+ </target>
+ <target name="assemble.org.rssowl.dependencies">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="zipargs" value="" />
+ </ant>
+ </target>
+ <target name="assemble.org.rssowl.contrib.notes">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="zipargs" value="" />
+ </ant>
+ </target>
+ <target name="assemble.org.rssowl.feature.contrib.feedhandler">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="zipargs" value="" />
+ </ant>
+ </target>
+ <target name="assemble.org.rssowl.feature.contrib.tools">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="zipargs" value="" />
+ </ant>
+ </target>
+
+
+ <!-- assmble targets for RCP build -->
+ <target name="assemble.org.eclipse.pde.build.container.feature.win32.win32.x86">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="archiveName" value="${archiveNamePrefix}-win32.win32.x86.zip"/>
+ </ant>
+ </target>
+ <target name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="archiveName" value="${archiveNamePrefix}-linux.gtk.x86.zip"/>
+ </ant>
+ </target>
+ <target name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.ppc">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="archiveName" value="${archiveNamePrefix}-linux.gtk.ppc.zip"/>
+ </ant>
+ </target>
+ <target name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86_64">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="archiveName" value="${archiveNamePrefix}-linux.gtk.x86_64.zip"/>
+ </ant>
+ </target>
+ <target name="assemble.org.eclipse.pde.build.container.feature.linux.motif.x86">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="archiveName" value="${archiveNamePrefix}-linux.motif.x86.zip"/>
+ </ant>
+ </target>
+ <target name="assemble.org.eclipse.pde.build.container.feature.solaris.motif.sparc">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="archiveName" value="${archiveNamePrefix}-solaris.motif.sparc.zip"/>
+ </ant>
+ </target>
+ <target name="assemble.org.eclipse.pde.build.container.feature.solaris.gtk.sparc">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="archiveName" value="${archiveNamePrefix}-solaris.gtk.sparc.zip"/>
+ </ant>
+ </target>
+ <target name="assemble.org.eclipse.pde.build.container.feature.aix.motif.ppc">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="archiveName" value="${archiveNamePrefix}-aix.motif.ppc.zip"/>
+ </ant>
+ </target>
+ <target name="assemble.org.eclipse.pde.build.container.feature.hpux.motif.PA_RISC">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="archiveName" value="${archiveNamePrefix}-hpux.motif.PA_RISC.zip"/>
+ </ant>
+ </target>
+ <target name="assemble.org.eclipse.pde.build.container.feature.macosx.carbon.ppc">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="archiveName" value="${archiveNamePrefix}-macosx.carbon.ppc.zip"/>
+ </ant>
+ </target>
+ <target name="assemble.org.eclipse.pde.build.container.feature.macosx.carbon.x86">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}">
+ <property name="archiveName" value="${archiveNamePrefix}-macosx.carbon.x86.zip"/>
+ </ant>
+ </target>
+</project>
View
47 org.rssowl.build/build-files/ant-contrib-LICENSE.txt
@@ -0,0 +1,47 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2001-2003 Ant-Contrib project. 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 acknowlegement:
+ * "This product includes software developed by the
+ * Ant-Contrib project (http://sourceforge.net/projects/ant-contrib)."
+ * Alternately, this acknowlegement may appear in the software itself,
+ * if and wherever such third-party acknowlegements normally appear.
+ *
+ * 4. The name Ant-Contrib must not be used to endorse or promote products
+ * derived from this software without prior written permission. For
+ * written permission, please contact
+ * ant-contrib-developers@lists.sourceforge.net.
+ *
+ * 5. Products derived from this software may not be called "Ant-Contrib"
+ * nor may "Ant-Contrib" appear in their names without prior written
+ * permission of the Ant-Contrib 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 ANT-CONTRIB PROJECT 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.
+ * ====================================================================
+ */
View
BIN  org.rssowl.build/build-files/ant-contrib.jar
Binary file not shown
View
BIN  org.rssowl.build/build-files/automatedTests/eclipse-test-framework-3.3.2.zip
Binary file not shown
View
BIN  org.rssowl.build/build-files/automatedTests/emma.jar
Binary file not shown
View
BIN  org.rssowl.build/build-files/automatedTests/emma_ant.jar
Binary file not shown
View
BIN  ...ld-files/automatedTests/org.pluginbuilder.autotestsuite.feature-0.4.0.200805030649NGT.zip
Binary file not shown
View
91 org.rssowl.build/build-files/automatedTests/run-tests.properties
@@ -0,0 +1,91 @@
+# test.eclipse.host denotes the Eclipse installation which is the host for the test run.
+# The directory given here is expected to have an eclipse subdirectory.
+# The default is to use the same host as the build host but in general this should be changed to
+# a separate installation. You can also set this directory to a non existing location and provide
+# a zip file (see next property) which will then be extracted.
+# The test host does not have to be a full Java/PDE SDK, the Eclipse platform is fully sufficient. Please ALWAYS USE FORWARD SLASHES.
+# @category testGeneral
+# @type Directory
+test.eclipse.host=${eclipseDir}/..
+
+# If you specify a non existing test.eclipse.host, you can provide a zipped Eclipse installation here,
+# e.g. eclipse-platform-3.3.2-win32.zip. You can set the test.eclipse.host to a subdirectory of the
+# buildDirectory if you want to have a fresh installation for every test run, e.g. test.eclipse.host=${buildDirectory}/testhost
+# @category testGeneral
+# @type File
+test.eclipse.zip=
+
+# The location of the Eclipse extension site. It consists of the built features,
+# the Eclipse test framework and the autotestsuite. The extension site will be
+# added with the standalone update manager to ${test.eclipse.host}.
+# @category testGeneral
+# @type Directory
+test.eclipseExtensionDirectory=${buildDirectory}/eclipseextension/eclipse
+
+# Enable the autotestsuite trace in order to see which plugins and classes the autotestsuite searches for tests.
+# Useful for debugging the filter expressions below.
+# @category testGeneral
+# @type Boolean
+autotestsuite.trace=true
+
+# Decides if the autotestsuite should run headless or not. Running headless means that the workbench does
+# not get started and the tests are executed directly instead. Cannot be used for UI tests, therefore.
+# @category testGeneral
+# @type Boolean
+autotestsuite.headless=true
+
+# Set the test application which the autoTestApplication runs with the test harness in place. This is useful to
+# test the UI of an RCP application. This property is ignored if the headless mode is turned on.
+# @category testGeneral
+#autotest.testapplication=org.eclipse.ide.ui.workbench
+
+# Directory where the reports are collected
+# @category testHidden
+test.result.dir=${buildDirectory}/test-reports
+
+# Specifies the overall report in ${test.result.dir}/xml
+# @category testHidden
+test.aggregated.report=testReport_${buildLabel}.xml
+
+# Workspace for the tests. Particularly useful is ${test.workspace}/.metadata/.log
+# @category testHidden
+test.workspace=${buildDirectory}/test-workspace
+
+# Defaults for autotestsuite
+# @category testHidden
+autotestsuite.plugin.inclusions=
+
+# Defaults for autotestsuite
+# @category testHidden
+autotestsuite.plugin.exclusions=
+
+# Defaults for autotestsuite
+# @category testHidden
+autotestsuite.class.inclusions=
+
+# Defaults for autotestsuite
+# @category testHidden
+autotestsuite.class.exclusions=
+
+# Denotes the ant script where the target ui-test is defined. Note that this property is
+# only necessary if you want to use the Eclipse test framework to run your test. If you
+# run the tests with the autotestsuite (i.e. you use the include/exclude filters below)
+# this property is not being used.
+# @category testHidden
+test.library.xml=${test.eclipseExtensionDirectory}/plugins/org.eclipse.test_3.1.0/library.xml
+
+# Enablement for code coverage.
+# @category testCoverage
+# @type Boolean
+pluginbuilder.is.runcoverage=false
+
+# Take a look at http://emma.sourceforge.net/reference/ch02s06s02.html#filtersyntax.ANT for the filter syntax.
+# @category testCoverage
+pluginbuilder.coverage.exclusionfilter=org.rssowl.core.tests.*
+
+# @category testCoverage
+pluginbuilder.coverage.inclusionfilter=
+
+# Place for runtime data.
+# @category coverageHidden
+emma.coverage.output=${buildDirectory}/coverage.ec
View
255 org.rssowl.build/build-files/automatedTests/run-tests.xml
@@ -0,0 +1,255 @@
+<project name="Run automated Tests" default="run" basedir=".">
+ <taskdef resource="org/pluginbuilder/anttasks/pluginbuildertasks.properties" classpath="../pluginbuilder-anttasks.jar" />
+ <typedef resource="org/pluginbuilder/anttasks/pluginbuildertypes.properties" classpath="../pluginbuilder-anttasks.jar" />
+
+ <GetHostName />
+ <property file="../../build_${hostname}.properties" />
+ <property file="../../build_local.properties" />
+ <property file="run-tests.properties" />
+ <property name="test.eclipse.host.eclipse" value="${test.eclipse.host}/eclipse" />
+
+ <import file="../build_shared.xml" />
+
+ <condition property="is.emma">
+ <equals arg1="${pluginbuilder.is.runcoverage}" arg2="true"/>
+ </condition>
+
+ <target name="-init" depends="-emmaInit">
+ <antcall target="-unpackEclipse"/>
+ <antcall target="-installEclipseExtensionLocation"/>
+ <antcall target="umAddSite" />
+ <!-- Useful for debugging
+ <antcall target="umListFeaturesSite" />
+ -->
+ </target>
+
+ <target name="-installEclipseExtensionLocation">
+ <echo message="Installing plug-ins for testing into eclipse extension location" />
+ <mkdir dir="${test.eclipseExtensionDirectory}"/>
+ <condition property="buildResultZipDest" value="${test.eclipseExtensionDirectory}/.." else="${test.eclipseExtensionDirectory}">
+ <equals arg1="${archivePrefix}" arg2="eclipse" />
+ </condition>
+ <unzip dest="${buildResultZipDest}">
+ <fileset dir="${buildDirectory}" includes="${buildType}-**/*.zip" excludes="**/${archiveNamePrefix}-*"/>
+ </unzip>
+ <antcall target="-emmaInstrument"/>
+ <unzip dest="${test.eclipseExtensionDirectory}/..">
+ <fileset dir="." includes="eclipse-test-framework*.zip" />
+ </unzip>
+ <unzip dest="${test.eclipseExtensionDirectory}">
+ <fileset dir="." includes="org.pluginbuilder.autotestsuite*.zip" />
+ </unzip>
+ <echo file="${test.eclipseExtensionDirectory}/.eclipseextension">id=org.eclipse.platform
+name=Eclipse Platform
+version=3.1.0</echo>
+ </target>
+
+ <target name="-unpackEclipse" unless="isEclipseInstallationAvailable">
+ <antcall target="unpack.eclipse">
+ <param name="eclipse.installation.dir" value="${test.eclipse.host.eclipse}"/>
+ <param name="eclipse.local.tar.non.server" value="${test.eclipse.zip}"/>
+ </antcall>
+ </target>
+
+ <!-- Example target which demonstrates how to run a test suite with the Eclipse test fwk.
+ Note that it is not needed if you use the autotestsuite
+
+ <target name="-runTestSuite" description="Should be called from allTests.xml only">
+ <ant target="core-test" antfile="${test.library.xml}" dir="${test.eclipse.host.eclipse}">
+ --><!-- inject additional properties for Eclipse startup with data-dir property --><!--
+ <property name="data-dir" value="${test.workspace} -clean -dev ${basedir}/emma.jar" />
+ <property name="plugin-name" value="org.rssowl.core.tests" />
+ <property name="classname" value="org.rssowl.core.tests.AllTests" />
+ <property name="eclipse-home" value="${test.eclipse.host.eclipse}" />
+ <property name="extraVMargs" value="-Demma.coverage.out.file=${emma.coverage.output}" />
+ </ant>
+ </target>
+
+ <target name="run" depends="-init,-runTestSuite,-emmaReport" description="Run manually defined tests and create a report.">
+ <antcall target="umRemoveSite" />
+ <delete dir="${test.result.dir}" />
+ <mkdir dir="${test.result.dir}/xml" />
+ --><!-- collect creates an aggregated report file in ${test.eclipse.host} --><!--
+ <ant target="collect" antfile="${test.library.xml}" dir="${test.eclipse.host.eclipse}">
+ <property name="includes" value="*.xml" />
+ <property name="output-file" value="${test.aggregated.report}" />
+ </ant>
+ <copy file="${test.eclipse.host.eclipse}/${test.aggregated.report}" todir="${test.result.dir}/xml" />
+
+ <BundleFileLocator eclipseInstallationRoot="${test.eclipseExtensionDirectory}" bundleId="org.pluginbuilder.autotestsuite.application" filePath="JUNIT.XSL" property="junit.xsl.file" />
+ <style style="${junit.xsl.file}" basedir="${test.result.dir}/xml" destdir="${test.result.dir}/html" />
+
+ <antcall target="-checkTestResultFileForErrors"/>
+ </target>
+ -->
+
+ <target name="run" depends="-init,-runAutoTests,-emmaReport" description="Run all tests using the autotestsuite and create xml and html reports.">
+ <antcall target="umRemoveSite" />
+ <junitreport todir="${test.result.dir}/xml" tofile="${test.aggregated.report}">
+ <fileset dir="${test.result.dir}/xml">
+ <include name="*.xml" />
+ </fileset>
+ </junitreport>
+
+ <BundleFileLocator eclipseInstallationRoot="${test.eclipseExtensionDirectory}" bundleId="org.pluginbuilder.autotestsuite.application" filePath="JUNIT.XSL" property="junit.xsl.file" />
+
+ <style style="${junit.xsl.file}" basedir="${test.result.dir}/xml" includes="${test.aggregated.report}" destdir="${test.result.dir}/html" />
+ </target>
+
+ <target name="-markErrorOrFailure" if="isErrorOrFailure">
+ <!-- Write Message to stderr and continue the build. Do not let the build fail so that
+ other tasks which come afterwards can be completed. E.g. packaging might take place
+ after test execution -->
+ <echo level="error" message="TESTS FAILED"/>
+ </target>
+
+ <target name="-checkTestResultFileForErrors" unless="isErrorOrFailure" description="Check test result file for errors. Not needed for autotestsuite where the return status is used to signal a failed build.">
+ <echo message="Checke auf Fehler: ${test.aggregated.report}"/>
+
+ <condition property="isErrorOrFailure">
+ <hasErrorOrFailure reportFile="${test.result.dir}/xml/${test.aggregated.report}" />
+ </condition>
+
+ <antcall target="-markErrorOrFailure" />
+ </target>
+
+ <target name="-runAutoTests">
+ <mkdir dir="${test.result.dir}/xml"/>
+ <BundleFileLocator eclipseInstallationRoot="${test.eclipse.host.eclipse}" bundleId="org.eclipse.equinox.launcher" property="equinoxjar" />
+ <condition property="optJvmArg" else="-DdummyVar=NotOnMac" value="-XstartOnFirstThread">
+ <os family="mac"/>
+ </condition>
+ <condition property="testApplication" else="" value="-testApplication ${autotest.testapplication}">
+ <isset property="autotest.testapplication"/>
+ </condition>
+ <java fork="true" dir="." logError="true" classname="org.eclipse.core.launcher.Main" resultproperty="autotestsuite.result">
+
+ <arg line="-application org.pluginbuilder.autotestsuite.application.autoTestApplication ${testApplication}" />
+ <arg line="-data ${test.workspace}" />
+ <arg line="-os ${os}" />
+ <arg line="-ws ${ws}" />
+ <arg line="-arch ${arch}" />
+ <arg line="-clean" />
+ <arg line="-consolelog" />
+ <arg line="-dev ${basedir}/emma.jar" />
+
+ <jvmarg value="-Demma.coverage.out.file=${emma.coverage.output}"/>
+ <jvmarg value="${optJvmArg}"/>
+ <jvmarg value="-Xmx512m"/>
+
+ <sysproperty key="autotestsuite.results.directory" value="${test.result.dir}/xml" />
+ <sysproperty key="autotest.debug" value="${autotestsuite.trace}" />
+ <sysproperty key="autotestsuite.headless" value="${autotestsuite.headless}" />
+ <sysproperty key="autotestsuite.plugin.inclusions" value="${autotestsuite.plugin.inclusions}" />
+ <sysproperty key="autotestsuite.plugin.exclusions" value="${autotestsuite.plugin.exclusions}|^org.eclipse.test$" />
+ <sysproperty key="autotestsuite.class.inclusions" value="${autotestsuite.class.inclusions}" />
+ <sysproperty key="autotestsuite.class.exclusions" value="${autotestsuite.class.exclusions}" />
+
+ <classpath>
+ <pathelement location="${equinoxjar}" />
+ </classpath>
+ </java>
+ <condition property="isErrorOrFailure">
+ <not>
+ <equals arg1="${autotestsuite.result}" arg2="0"/>
+ </not>
+ </condition>
+
+ <antcall target="-markErrorOrFailure"/>
+ </target>
+
+ <target name="umAddSite">
+ <echo message="Adding Extension Site to ${test.eclipse.host}. Might fail if extension already exists."/>
+ <!-- the addSite calls fails if the extension site already exists (for example because it was not removed properly
+ from a previous build. Nonetheless the tests can proceed -->
+ <antcall target="updateManager">
+ <param name="updateManagerCommand" value="addSite"/>
+ <param name="updateManagerCommandParam" value="-from"/>
+ <param name="updateManagerCommandSiteUrl" value="${test.eclipseExtensionDirectory}"/>
+ <param name="updateManagerCommandFailOnError" value="false"/>
+ </antcall>
+ </target>
+
+ <target name="umRemoveSite">
+ <!-- This command might fail if the Extension Site has never been added or was properly removed before. -->
+ <echo message="Removing Extension Site from ${test.eclipse.host}."/>
+
+ <antcall target="updateManager">
+ <param name="updateManagerCommand" value="removeSite"/>
+ <param name="updateManagerCommandParam" value="-to"/>
+ <param name="updateManagerCommandSiteUrl" value="${test.eclipseExtensionDirectory}"/>
+ <param name="updateManagerCommandFailOnError" value="false"/>
+ </antcall>
+ </target>
+
+ <target name="umListFeaturesSite">
+ <antcall target="updateManager">
+ <param name="updateManagerCommand" value="listFeatures"/>
+ <param name="updateManagerCommandParam" value="-from"/>
+ <param name="updateManagerCommandSiteUrl" value="${test.eclipseExtensionDirectory}"/>
+ <param name="updateManagerCommandFailOnError" value="false"/>
+ </antcall>
+
+ </target>
+
+ <target name="updateManager">
+ <BundleFileLocator eclipseInstallationRoot="${test.eclipse.host.eclipse}" bundleId="org.eclipse.equinox.launcher" property="equinoxjar" />
+ <java classname="org.eclipse.equinox.launcher.Main" fork="true" failonerror="${updateManagerCommandFailOnError}">
+ <arg value="-ws" />
+ <arg value="${ws}" />
+ <arg value="-os" />
+ <arg value="${os}" />
+ <arg value="-application" />
+ <arg value="org.eclipse.update.core.standaloneUpdate" />
+ <arg value="-command" />
+ <arg value="${updateManagerCommand}" />
+ <arg value="${updateManagerCommandParam}" />
+ <arg value="${updateManagerCommandSiteUrl}" />
+
+ <classpath>
+ <pathelement location="${equinoxjar}" />
+ </classpath>
+
+ </java>
+ </target>
+
+
+
+ <target name="-emmaInit" if="is.emma">
+ <path id='emma.lib' >
+ <fileset dir='.' includes='*.jar' />
+ </path>
+ <taskdef resource='emma_ant.properties' classpathref='emma.lib' />
+ </target>
+
+ <target name="-emmaReport" if="is.emma">
+ <mkdir dir="${test.result.dir}/coverage" />
+ <emma enabled="${pluginbuilder.is.runcoverage}">
+ <report encoding="UTF-8">
+ <fileset dir="${buildDirectory}" includes="*.emma"/>
+ <fileset file="${emma.coverage.output}"/>
+ <html outfile="${test.result.dir}/coverage/coverage.html" />
+
+ <sourcepath>
+ <dirset dir="${buildDirectory}/plugins">
+ </dirset>
+ </sourcepath>
+
+ </report>
+ </emma>
+ </target>
+
+ <target name="-emmaInstrument" if="is.emma">
+ <!-- <emma enabled="${pluginbuilder.is.runcoverage}"> -->
+ <emma>
+ <instr verbosity="info" metadatafile="${buildDirectory}/metadata.emma" mode="overwrite">
+ <instrpath>
+ <fileset dir="${test.eclipseExtensionDirectory}" includes="**/*.jar" excludes="**/emma*.jar"/>
+ <dirset dir="${test.eclipseExtensionDirectory}/plugins" includes="*" />
+ </instrpath>
+ <!-- http://emma.sourceforge.net/reference/ch02s06s02.html#filtersyntax.ANT -->
+ <filter includes="${pluginbuilder.coverage.inclusionfilter}" excludes="${pluginbuilder.coverage.exclusionfilter}" />
+ </instr>
+ </emma>
+ </target>
+</project>
View
187 org.rssowl.build/build-files/build.properties
@@ -0,0 +1,187 @@
+# The prefix that will be used in the generated archive. For most of the Eclipse projects
+# this is set to 'eclipse'. However, for people who have renamed the folder of their
+# Eclipse installation it can be annoying to have the eclipse path included. Set to
+# '.' ( a single dot without quotation marks) in order to pack the plugins and features
+# directory into the root of the archive
+# @category packaging
+archivePrefix=.
+
+# The location under which all of the build output will be collected.
+# @category packaging
+collectingFolder=${archivePrefix}
+
+# Choose configurations if you want to build configuration specific plug-ins. However, if you
+# only want to create RCP distributables for different platforms do not change the default
+# *,*,*. If you select any other entry than *,*,* you also have to provide an assemble task in allElements.xml.
+# @category compiling
+# @type list separator=&;values=*,*,*&win32,win32,x86&linux,gtk,ppc&linux,gtk,x86 & linux,gtk,x86_64 & linux,motif,x86 & solaris,motif,sparc & solaris,gtk,sparc & aix,motif,ppc & hpux,motif,PA_RISC & macosx,carbon,ppc & macosx,carbon,x86
+#configs=*,*,*
+
+
+# By default PDE creates one archive (result) per entry listed in the configs property.
+# Setting this value to true will cause PDE to only create one output containing all
+# artifacts for all the platforms listed in the configs property.
+# @category packaging
+# @type Boolean
+#groupConfigurations=false
+
+#The format of the archive. By default a zip is created using antZip.
+#The list can only contain the configuration for which the desired format is different than zip.
+# E.g. win32,win32,x86 - antZip
+#archivesFormat=
+
+# Set to true for Jnlp generation
+# @category jnlp
+# @type Boolean
+# generateJnlp=false
+
+# Codebase should be a URL that will be used as the root of all relative URLs in the output.
+# @category jnlp
+#jnlp.codebase=<codebase url>
+
+# @category jnlp
+#jnlp.j2se=<j2se version>
+
+# @category jnlp
+#jnlp.locale=<a locale>
+
+# Generate <offlineAllowed/> attribute in the generated features
+# @category jnlp
+# @type Boolean
+#jnlp.generateOfflineAllowed=
+
+# Set to ${configs} in order to filter the content of the generated jnlp files based on the configuration being built
+# @category jnlp
+# @type enum values=${configs}
+# jnlp.configs=
+
+# Check if you want to sign jars
+# @type Boolean
+# @category jarsigning
+#signJars=false
+
+# The Alias used for signing jars
+# @category jarsigning
+#sign.alias=
+
+# A path to the keystore used for signing jars
+# @category jarsigning
+#sign.keystore=
+
+# The password for the keystore
+# @category jarsigning
+#sign.storepass=
+
+#Arguments to send to the zip executable
+# @category packaging
+zipargs=
+
+#Arguments to send to the tar executable
+# @category packaging
+tarargs=
+
+# Control the creation of a file containing the version included in each configuration - on by default
+# @type Boolean
+#generateVersionsLists=true
+
+# Indicates whether you want the set of plug-ins and features to be considered during the build to be limited to the ones reachable from the features / plugins being built
+# @type Boolean
+filteredDependencyCheck=false
+
+# Indicates whether the resolution should be done in development mode (i.e. ignore multiple bundles with singletons)
+# @type Boolean
+resolution.devMode=false
+
+#pluginPath is a list of locations in which to find plugins and features. This list is separated by the platform file separator (; or :)
+#a location is one of:
+#- the location of the jar or folder that is the plugin or feature : /path/to/foo.jar or /path/to/foo
+#- a directory that contains a /plugins or /features subdirectory
+#- the location of a feature.xml, or for 2.1 style plugins, the plugin.xml or fragment.xml
+#pluginPath=
+
+
+# The location of the Java jars to compile against. Typically the rt.jar for your JDK/JRE
+# @category compiling
+# bootclasspath=${java.home}/lib/rt.jar
+
+# @category executionEnvironment
+#CDC-1.0/Foundation-1.0=
+# @category executionEnvironment
+#CDC-1.1/Foundation-1.1=
+# @category executionEnvironment
+#OSGi/Minimum-1.0=
+# @category executionEnvironment
+#OSGi/Minimum-1.1=
+# @category executionEnvironment
+#JRE-1.1=
+# @category executionEnvironment
+#J2SE-1.2=
+# @category executionEnvironment
+#J2SE-1.3=
+# @category executionEnvironment
+#J2SE-1.4=
+# @category executionEnvironment
+#J2SE-1.5=
+# @category executionEnvironment
+#JavaSE-1.6=
+# @category executionEnvironment
+#PersonalJava-1.1=
+# @category executionEnvironment
+#PersonalJava-1.2=
+# @category executionEnvironment
+#CDC-1.0/PersonalBasis-1.0=
+# @category executionEnvironment
+#CDC-1.0/PersonalJava-1.0=
+# @category executionEnvironment
+#CDC-1.1/PersonalBasis-1.1=
+# @category executionEnvironment
+#CDC-1.1/PersonalJava-1.1=
+
+# Specify the output format of the compiler log when eclipse jdt is used
+# @category compiling
+logExtension=.log
+
+# Whether or not to include debug info in the output jars
+# @category compiling
+# @type Boolean
+javacDebugInfo=true
+
+# Whether or not to fail the build if there are compiler errors
+# @category compiling
+# @type Boolean
+javacFailOnError=true
+
+# Enable or disable verbose mode of the compiler
+# @category compiling
+# @type Boolean
+javacVerbose=true
+
+# Extra arguments for the compiler. These are specific to the java compiler being used.
+# @category compiling
+#compilerArg=
+compilerArg=-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith
+
+# Default value for the version of the source code. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacSource in build.properties
+# @type enum values=1.1,1.2,1.3,1.4,1.5,1.6
+# @category compiling
+#javacSource=1.3
+javacSource=1.5
+
+# Default value for the version of the byte code targeted. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacTarget in build.properties.
+# @type enum values=1.1,1.2,1.3,1.4,1.5,1.6
+# @category compiling
+#javacTarget=1.1
+javacTarget=1.5
+
+# Set the description for the update site. The update manager shows the description in the Updates dialog.
+# @category updateSite
+updateSiteDescription=RSSOwl Nightly Update Site
+
+# There will be one category for the generated update site. Here you can set the name.
+# It is more like an id with which features refer to their category and does not appear in the GUI.
+# @category updateSite
+updateSiteCategoryName=rssowl.nightly.builds
+
+# Here you can set the Label of the category which will be displayed in the Updates dialog.
+# @category updateSite
+updateSiteCategoryLabel=RSSOwl Nightly Builds
View
35 org.rssowl.build/build-files/build_rcp.properties
@@ -0,0 +1,35 @@
+# The name of the Product Configuration file (.product) which must reside in the root folder of this pluginbuilder project.
+# This field is mandatory.
+# @category rcp
+product=rssowl.product
+
+# Select the platforms for which you want to create RCP deliverables.
+# @category rcp
+# @type list separator=&;values=win32,win32,x86&linux,gtk,ppc&linux,gtk,x86 & linux,gtk,x86_64 & linux,motif,x86 & solaris,motif,sparc & solaris,gtk,sparc & aix,motif,ppc & hpux,motif,PA_RISC & macosx,carbon,ppc & macosx,carbon,x86
+configs=win32,win32,x86&linux,gtk,x86&linux,gtk,x86_64&macosx,carbon,x86
+
+# Prefix for the created archive file name. The archive name always contains the configuration. The prefix and configuration are divided by a minus character. If you want to include the version you can reference the property ${version.full}, a sample value for archiveNamePrefix is myRcpApp-${version.full}
+# @category rcp
+archiveNamePrefix=rssowl-${version.full}
+
+# You need to set this to true in order to get archives for your configurations.
+# @category rcp
+# @type Boolean
+# runPackager=false
+runPackager=true
+
+# A Pluginbuilder property which prevents running the postBuild target. Since the RCP
+# build is usually run after a regular build which includes the postBuild phase no.postBuild
+# should be activated for RCP builds
+# @category rcp_hidden
+# @type Boolean
+no.postBuild=true
+
+# Another Pluginbuilder property which should be activated for RCP builds
+# @category rcp_hidden
+# @type Boolean
+build.container.feature=true
+
+# Set the root path in the platform specific packages
+# @category packaging
+# archivePrefix=
View
116 org.rssowl.build/build-files/build_shared.xml
@@ -0,0 +1,116 @@
+<project name="Shared build targets">
+ <!-- the following properties must be set from the calling script
+ <property name="eclipse.installation.dir" value="${buildDirectory}"/>
+ <property name="eclipse.local.tar.non.server" value="${test.eclipse.zip}"/>
+ eclipse.download.cache,pluginbuilder.eclipse.url
+ optional:
+ <property name="pluginbuilder.additional.feature.urls" value="featureurl1,featureurl2"/>
+ -->
+
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${buildHome}/build-files/ant-contrib.jar" />
+
+ <target name="unpack.eclipse">
+ <condition property="unpack.eclipse">
+ <not>
+ <available type="dir" file="${eclipse.installation.dir}"/>
+ </not>
+ </condition>
+ <antcall target="-unpack.eclipse.ifnecessary"/>
+ </target>
+
+ <!-- call either with or feature.url or pluginbuilder.eclipse.url
+ sets property archive.location to the archive path in download cache.
+ -->
+ <target name="-set.archive.location" if="pluginbuilder.is.server">
+ <!-- set default, useful for server where pluginbuilder.eclipse.url.default can be specified in build_local.properties -->
+ <property name="pluginbuilder.eclipse.url" value="${pluginbuilder.eclipse.url.default}"/>
+ <condition property="archive.url" value="${feature.url}" else="${pluginbuilder.eclipse.url}">
+ <isset property="feature.url"/>
+ </condition>
+ <mkdir dir="${eclipse.download.cache}"/>
+ <tempfile destdir="${eclipse.download.cache}" property="tmp.file" suffix=".txt" prefix="downloadurl"/>
+ <echo file="${tmp.file}" message="${archive.url}"/>
+ <checksum file="${tmp.file}" property="pluginbuilder.eclipse.url.checksum"/>
+ <delete file="${tmp.file}"/>
+ <property name="archive.location" value="${eclipse.download.cache}/${pluginbuilder.eclipse.url.checksum}"/>
+ <!-- <echo message="${archive.location} is archive location for ${archive.url}"/> -->
+ </target>
+
+ <target name="-set.eclipse.local.tar.server" if="pluginbuilder.is.server" depends="-set.archive.location">
+ <property name="eclipse.local.tar" value="${archive.location}"/>
+ </target>
+
+ <target name="-set.eclipse.local.tar.non.server" unless="pluginbuilder.is.server">
+ <property name="eclipse.local.tar" value="${eclipse.local.tar.non.server}"/>
+ </target>
+
+ <target name="-get.archive.ifnecessary" unless="eclipse.is.downloaded">
+ <condition property="archive.url" value="${feature.url}" else="${pluginbuilder.eclipse.url}">
+ <isset property="feature.url"/>
+ </condition>
+ <get src="${archive.url}" dest="${archive.location}" />
+ </target>
+
+ <target name="-get.archive" depends="-set.archive.location" if="pluginbuilder.is.server">
+ <condition property="eclipse.is.downloaded">
+ <available file="${archive.location}" property="${eclipse.is.downloaded}"/>
+ </condition>
+ <antcall target="-get.archive.ifnecessary"/>
+ </target>
+
+ <target name="-get.features" if="pluginbuilder.is.server" >
+ <property name="pluginbuilder.feature.urls" value="${pluginbuilder.feature.urls.default}"/>
+ <foreach list="${pluginbuilder.feature.urls}" param="feature.url" delimiter="," target="-get.archive" inheritall="true"/>
+ </target>
+
+ <target name="-unpack.features" if="pluginbuilder.is.server">
+ <property name="pluginbuilder.feature.urls" value="${pluginbuilder.feature.urls.default}"/>
+ <foreach list="${pluginbuilder.feature.urls}" param="feature.url" delimiter="," target="-unpack.feature" inheritall="true"/>
+ </target>
+
+ <target name="-unpack.feature" depends="-set.archive.location">
+ <property name="tempunziplocation" value="${buildDirectory}/tmpunzip"/>
+ <delete dir="${tempunziplocation}" failonerror="false"/>
+ <mkdir dir="${tempunziplocation}"/>
+ <unzip src="${archive.location}" overwrite="true" dest="${tempunziplocation}"/>
+ <condition property="moveroot" value="${tempunziplocation}/eclipse" else="${tempunziplocation}">
+ <available file="${tempunziplocation}/eclipse" type="dir"/>
+ </condition>
+ <move todir="${eclipse.installation.dir}" includeemptydirs="true">
+ <fileset dir="${moveroot}" includes="**"/>
+ </move>
+ </target>
+
+ <target name="-unpack.eclipse.ifnecessary" if="unpack.eclipse">
+ <antcall target="-get.archive"/>
+ <condition property="is.windows">
+ <os family="windows"/>
+ </condition>
+ <antcall target="-unpack.eclipse.windows"/>
+ <antcall target="-unpack.eclipse.linux"/>
+ <antcall target="-get.features"/>
+ <antcall target="-unpack.features"/>
+ </target>
+
+ <target name="-unpack.eclipse.windows" if="is.windows" depends="-set.eclipse.local.tar.server,-set.eclipse.local.tar.non.server">
+ <unzip src="${eclipse.local.tar}" overwrite="true" dest="${eclipse.installation.dir}/.."/>
+ </target>
+
+ <target name="-unpack.eclipse.linux" unless="is.windows" depends="-set.eclipse.local.tar.server,-set.eclipse.local.tar.non.server">
+ <unzip src="${eclipse.local.tar}" overwrite="true" dest="${eclipse.installation.dir}/.."/>
+ </target>
+
+ <target name="test">
+ <property name="buildDirectory" value="C:/Temp/tst"/>
+ <mkdir dir="${buildDirectory}"/>
+ <property name="eclipse.download.cache" value="C:/Temp/downloadcache"/>
+ <property name="pluginbuilder.is.server" value="true"/>
+ <property name="pluginbuilder.eclipse.url" value="http://mirror.yoxos-eclipse-distribution.de/eclipse.org/eclipse/downloads/drops/R-3.2.2-200702121330/eclipse-PDE-3.2.2.zip"/>
+
+ <property name="eclipse.installation.dir" value="C:/Temp/eclipse_root/eclipse"/>
+ <delete dir="${eclipse.installation.dir}" failonerror="false"/>
+ <property name="pluginbuilder.feature.urls" value="http://self.pluginbuilder.org/0.2.0/org.pluginbuilder.feature-0.2.0.20070218PRD.zip,http://mirror.yoxos-eclipse-distribution.de/eclipse.org/eclipse/downloads/drops/R-3.2.2-200702121330/eclipse-examples-3.2.2.zip"/>
+ <antcall target="unpack.eclipse"/>
+ </target>
+
+</project>
View
208 org.rssowl.build/build-files/customTargets.xml
@@ -0,0 +1,208 @@
+<project name="Build specific targets and properties" default="noDefault">
+ <condition property="isNightlyBuild">
+ <equals arg1="${buildType}" arg2="N" />
+ </condition>
+ <condition property="isNightlyOrIntegrationBuild">
+ <or>
+ <equals arg1="${buildType}" arg2="N" />
+ <equals arg1="${buildType}" arg2="I" />
+ </or>
+ </condition>
+
+ <property file="${buildHome}/pluginbuilder.config" />
+
+ <property file="${buildDirectory}/version.properties" />
+ <property name="buildLabel" value="${buildType}-${version.full}" />
+ <property name="buildId" value="${version.full}" />
+
+ <condition property="isCVSOrCopy" value="true">
+ <or>
+ <equals arg1="${pluginbuilder.is.cvs}" arg2="true"/>
+ <equals arg1="${pluginbuilder.is.copy}" arg2="true"/>
+ </or>
+ </condition>
+ <condition property="isSVN" value="true">
+ <equals arg1="${pluginbuilder.is.svn}" arg2="true"/>
+ </condition>
+ <condition property="isRunTests" value="true">
+ <equals arg1="${pluginbuilder.is.runtests}" arg2="true"/>
+ </condition>
+
+
+ <target name="allElements">
+ <condition property="isFetch" value="true">
+ <equals arg1="${target}" arg2="fetchElement"/>
+ </condition>
+ <condition property="is.svn.fetch" value="true">
+ <and>
+ <equals arg1="${target}" arg2="fetchElement"/>
+ <equals arg1="${pluginbuilder.is.svn}" arg2="true"/>
+ </and>
+ </condition>
+
+ <antcall target="allElementsExceptSvnFetch"/>
+ <antcall target="fetchSubversion"/>
+ </target>
+
+ <import file="allElements.xml"/>
+ <import file="subversionSupport.xml"/>
+
+
+ <!-- ===================================================================== -->
+ <!-- Check out map files from correct repository -->
+ <!-- Replace values for cvsRoot, package and mapVersionTag as desired. -->
+ <!-- ===================================================================== -->
+ <target name="getMapFiles" if="isCVSOrCopy">
+ <echo message="Copying map files."/>
+ <copy todir="${buildDirectory}/maps">
+ <fileset dir="${buildHome}/maps" includes="*.map"></fileset>
+ </copy>
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before setup -->
+ <!-- ===================================================================== -->
+ <target name="preSetup">
+ </target>
+ <!-- ===================================================================== -->
+ <!-- Steps to do after setup but before starting the build proper -->
+ <!-- ===================================================================== -->
+ <target name="postSetup">
+ </target>
+ <!-- ===================================================================== -->
+ <!-- Steps to do before fetching the build elements -->
+ <!-- ===================================================================== -->
+ <target name="preFetch">
+ </target>
+ <!-- ===================================================================== -->
+ <!-- Steps to do after fetching the build elements -->
+ <!-- ===================================================================== -->
+ <target name="postFetch">
+ <condition property="is.fetch" value="true">
+ <available file="${buildDirectory}/plugins"/>
+ </condition>
+ <fail unless="is.fetch" message="There was no plug-in fetched. Was the configuration generated? Is the repository correct?"/>
+ <antcall target="replaceVersions"/>
+ </target>
+
+ <target name="replaceVersions">
+ <fail unless="version.full" message="Property version.full must be set" />
+ <fail unless="version.qualifier" message="Property version.qualifier must be set" />
+
+ <echo message="Updating versions in feature and plugin manifests. Full version: ${version.full}, qualifier: ${version.qualifier}"/>
+ <replaceregexp
+ match="(&lt;feature[^&gt;]*version=)&quot;0.0.0&quot;"
+ replace="\1&quot;${version.full}&quot;"
+ byline="false"
+ flags="s">
+ <fileset dir="${buildDirectory}/features" includes="**/feature.xml"/>
+ </replaceregexp>
+ <replaceregexp
+ match="(&lt;feature[^&gt;]*version=&quot;.*)qualifier&quot;"
+ replace="\1${version.qualifier}&quot;"
+ byline="false"
+ flags="s">
+ <fileset dir="${buildDirectory}/features" includes="**/feature.xml"/>
+ </replaceregexp>
+ <!-- in a manual build started with export from the feature.xml, there is no
+ need to replace the versions in the plugin.xml files if they are set to 0.0.0,
+ but here it needs to be -->
+ <replace dir="${buildDirectory}/plugins">
+ <include name="**/plugin.xml"/>
+ <replacefilter token="0.0.0" value="${version.full}" />
+ </replace>
+ <replace dir="${buildDirectory}/plugins">
+ <include name="**/META-INF/MANIFEST.MF"/>
+ <replacefilter token="Bundle-Version: 0.0.0" value="Bundle-Version: ${version.full}" />
+ <replacefilter token="qualifier" value="${version.qualifier}" />
+ </replace>
+ </target>
+ <!-- ===================================================================== -->
+ <!-- Steps to do before generating the build scripts. -->
+ <!-- ===================================================================== -->
+ <target name="preGenerate">
+ <!-- fail unless="featureVersion" message="Property featureVersion must be set.
+ Either directly or in case of a nightly build with nightlyBuildFeatureVersionPrefix." />
+ -->
+ </target>
+ <!-- ===================================================================== -->
+ <!-- Steps to do after generating the build scripts. -->
+ <!-- ===================================================================== -->
+ <target name="postGenerate">
+ </target>
+ <!-- ===================================================================== -->
+ <!-- Steps to do before running the build.xmls for the elements being built. -->
+ <!-- ===================================================================== -->
+ <target name="preProcess">
+ </target>
+ <!-- ===================================================================== -->
+ <!-- Steps to do after running the build.xmls for the elements being built. -->
+ <!-- ===================================================================== -->
+ <target name="postProcess">
+ </target>
+ <!-- ===================================================================== -->
+ <!-- Steps to do before running assemble. -->
+ <!-- ===================================================================== -->
+ <target name="preAssemble">
+ </target>
+ <!-- ===================================================================== -->
+ <!-- Steps to do after running assemble. -->
+ <!-- ===================================================================== -->
+ <target name="postAssemble">
+ </target>
+ <!-- ===================================================================== -->
+ <!-- Steps to do before/after packaging RCP. -->
+ <!-- ===================================================================== -->
+ <target name="prePackage">
+ </target>
+
+ <target name="postPackage">
+ <!-- copy build results for rcp build -->
+ <!--<copy todir="${buildResultsDirectory}" flatten="true">
+ <fileset dir="${buildDirectory}" includes="${buildType}-**/*.zip" />
+ </copy>-->
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after the build is done. -->
+ <!-- ===================================================================== -->
+ <property name="buildResultsDirectory" value="${buildDirectory}/results" />
+ <target name="postBuild" depends="-prepareBuildResultsDirectory" unless="no.postBuild">
+ <antcall target="runTests"/>
+ <copy todir="${buildResultsDirectory}" flatten="true">
+ <fileset dir="${buildDirectory}" includes="${buildType}-**/*.zip" />
+ </copy>
+ <condition property="is.External.Postbuild">
+ <available file="${buildHome}/build-files/postBuild.xml"/>
+ </condition>
+ <antcall target="callExternalPostBuild"/>
+ </target>
+ <!-- ===================================================================== -->
+ <!-- Run tests. -->
+ <!-- ===================================================================== -->
+ <target name="runTests" if="isRunTests">
+ <property name="automatedTestsHome" location="${buildHome}/build-files/automatedTests"/>
+
+ <ant antfile="${automatedTestsHome}/run-tests.xml" target="run" dir="${automatedTestsHome}">
+ <property name="test.result.dir" value="${buildResultsDirectory}/testresults"/>
+ </ant>
+ </target>
+ <!--======================================================-->
+ <!-- Gather build results -->
+ <!-- ==================================================== -->
+ <target name="-prepareBuildResultsDirectory">
+ <echo message="Creating ${buildResultsDirectory}" />
+ <mkdir dir="${buildResultsDirectory}" />
+ </target>
+
+ <!--======================================================-->
+ <!-- Call External post build file if available -->
+ <!-- ==================================================== -->
+ <target name="callExternalPostBuild" if="is.External.Postbuild">
+ <ant antfile="${buildHome}/build-files/postBuild.xml"/>
+ </target>
+
+ <target name="noDefault">
+ <echo message="You must specify a target when invoking this file" />
+ </target>
+</project>
View
112 org.rssowl.build/build-files/fetchSvnAll.xml
@@ -0,0 +1,112 @@
+<project name="Generated">
+ <target name="fetch.svn.all">
+ <antcall target="svn.co">
+ <param name="target" value="features"/>
+ <param name="element.id" value="org.rssowl"/>
+ <param name="project.name" value="/branches/2.1.x/org.rssowl.feature"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="plugins"/>
+ <param name="element.id" value="org.rssowl.lib.jdom"/>
+ <param name="project.name" value="/branches/2.1.x/org.rssowl.lib.jdom"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="plugins"/>
+ <param name="element.id" value="org.rssowl.ui"/>
+ <param name="project.name" value="/branches/2.1.x/org.rssowl.ui"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="plugins"/>
+ <param name="element.id" value="org.rssowl.lib.db4o"/>
+ <param name="project.name" value="/branches/2.1.x/org.rssowl.lib.db4o"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="plugins"/>
+ <param name="element.id" value="org.rssowl.core"/>
+ <param name="project.name" value="/branches/2.1.x/org.rssowl.core"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="plugins"/>
+ <param name="element.id" value="org.rssowl.lib.httpclient"/>
+ <param name="project.name" value="/branches/2.1.x/org.rssowl.lib.httpclient"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="plugins"/>
+ <param name="element.id" value="org.rssowl.lib.lucene"/>
+ <param name="project.name" value="/branches/2.1.x/org.rssowl.lib.lucene"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="features"/>
+ <param name="element.id" value="org.rssowl.contrib.nntp"/>
+ <param name="project.name" value="/contrib/trunk/org.rssowl.feature.contrib.nntp"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="plugins"/>
+ <param name="element.id" value="org.rssowl.contrib.nntp"/>
+ <param name="project.name" value="/contrib/trunk/org.rssowl.contrib.nntp"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="features"/>
+ <param name="element.id" value="org.rssowl.tests"/>
+ <param name="project.name" value="/branches/2.1.x/org.rssowl.feature.tests"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="plugins"/>
+ <param name="element.id" value="org.rssowl.core.tests"/>
+ <param name="project.name" value="/branches/2.1.x/org.rssowl.core.tests"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="features"/>
+ <param name="element.id" value="org.rssowl.dependencies"/>
+ <param name="project.name" value="/branches/2.1.x/org.rssowl.feature.dependencies"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="features"/>
+ <param name="element.id" value="org.rssowl.contrib.notes"/>
+ <param name="project.name" value="/contrib/trunk/org.rssowl.feature.contrib.notes"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="plugins"/>
+ <param name="element.id" value="org.rssowl.contrib.notes"/>
+ <param name="project.name" value="/contrib/trunk/org.rssowl.contrib.notes"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="features"/>
+ <param name="element.id" value="org.rssowl.feature.contrib.feedhandler"/>
+ <param name="project.name" value="/contrib/trunk/org.rssowl.feature.contrib.feedhandler"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="plugins"/>
+ <param name="element.id" value="org.rssowl.contrib.feedhandler"/>
+ <param name="project.name" value="/contrib/trunk/org.rssowl.contrib.feedhandler"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="features"/>
+ <param name="element.id" value="org.rssowl.feature.contrib.tools"/>
+ <param name="project.name" value="/contrib/trunk/org.rssowl.feature.contrib.tools"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ <antcall target="svn.co">
+ <param name="target" value="plugins"/>
+ <param name="element.id" value="org.rssowl.contrib.tools"/>
+ <param name="project.name" value="/contrib/trunk/org.rssowl.contrib.tools"/>
+ <param name="url" value="https://rssowl.svn.sourceforge.net/svnroot/rssowl"/>
+ </antcall>
+ </target>
+</project>
View
BIN  org.rssowl.build/build-files/pluginbuilder-anttasks.jar
Binary file not shown
View
84 org.rssowl.build/build-files/postBuild.xml
@@ -0,0 +1,84 @@
+<project name="Run as part of postBuild" default="main">
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${buildHome}/build-files/ant-contrib.jar" />
+ <taskdef resource="org/pluginbuilder/anttasks/pluginbuildertasks.properties" classpath="${buildHome}/build-files/pluginbuilder-anttasks.jar" />
+
+
+ <target name="main">
+
+ <property name="UpdateSiteStagingLocation" value="${buildDirectory}/tmpUpdateSite/updateSite"/>
+ <property name="UpdateSiteFinalLocation" value="${buildResultsDirectory}/../updateSite"/>
+ <property name="siteXmlFile" value="${UpdateSiteStagingLocation}/site.xml"/>
+
+ <antcall target="-generateUpdateSite"/>
+ <antcall target="-createNightlyBuildSiteXml"/>
+ <zip destfile="${buildResultsDirectory}/updateSite-${version.full}.zip" basedir="${UpdateSiteStagingLocation}"/>
+ <antcall target="deleteSiteXml"/>
+ <copy todir="${UpdateSiteFinalLocation}">
+ <fileset dir="${UpdateSiteStagingLocation}" includes="**"/>
+ </copy>
+ <delete dir="${UpdateSiteStagingLocation}/../.." includes="tmpUpdateSite/**" includeemptydirs="true"/>
+ <delete dir="${UpdateSiteFinalLocation}/plugins"/>
+ <delete dir="${UpdateSiteFinalLocation}/features"/>
+ </target>
+
+ <target name="deleteSiteXml" unless="isNightlyBuild">
+ <!-- in release builds the site.xml should not be overwritten, so older version can survive -->
+ <delete file="${siteXmlFile}"/>
+ </target>
+
+ <!--======================================================-->
+ <!-- UpdateSite Export target, to be called from allElements -->
+ <!-- ==================================================== -->
+ <target name="updateSiteExport">
+ <ant antfile="build.xml" dir="${buildDirectory}/features/${id}/" target="build.update.jar">
+ <property name="feature.destination" value="${UpdateSiteStagingLocation}/features"/>
+ <property name="plugin.destination" value="${UpdateSiteStagingLocation}/plugins"/>
+ </ant>
+ </target>
+
+ <target name="-generateUpdateSite">
+ <!-- Create the directory structure -->
+ <mkdir dir="${UpdateSiteStagingLocation}"/>
+ <mkdir dir="${UpdateSiteStagingLocation}/features"/>
+ <mkdir dir="${UpdateSiteStagingLocation}/plugins"/>
+ <condition property="jarProcessor.sign" value="true">
+ <istrue value="${signJars}"/>
+ </condition>
+ <!-- Build the jar files -->
+ <ant antfile="${builder}/customTargets.xml" target="allElements">
+ <property name="genericTargets" value="${builder}/postBuild.xml"/>
+ <property name="target" value="updateSiteExport"/>
+ </ant>
+ <!-- site.xml files for integration and release builds are handled elsewhere -->
+ <antcall target="-createNightlyBuildSiteXml"/>
+ <delete dir="${buildDirectory}/temp.updatesite"/>
+ </target>
+
+ <target name="-createNightlyBuildSiteXml">
+ <echo>${siteXmlFile}</echo>
+ <echo file="${siteXmlFile}">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;site&gt;
+ &lt;description&gt;${updateSiteDescription}&lt;/description&gt;
+</echo>
+ <foreach list="${pluginbuilder.features}" delimiter="," target="-appendFeatureElement" param="featureId" inheritall="true"/>
+ <echo file="${siteXmlFile}" append="true"> &lt;category-def name=&quot;${updateSiteCategoryName}&quot;
+ label=&quot;${updateSiteCategoryLabel}&quot;&gt;
+ &lt;/category-def&gt;
+&lt;/site&gt;</echo>
+ </target>
+
+ <target name="-appendFeatureElement">
+ <!-- we can not rely on ${version.full} at this point since people could use
+ a fix feature id like 0.5.0.qualifier. ${version.full} would only work if
+ the feature were set to 0.0.0 -->
+ <loadfile property="featurexml" srcfile="${buildDirectory}/features/${featureId}/feature.xml"/>
+ <SetRegex input="${featurexml}" match="^.*&lt;feature.+?version=&quot;(.+?)&quot;.*$" property="realFeatureVersion" value="\1" />
+ <echo file="${siteXmlFile}" append="true"> &lt;feature
+ url=&quot;features/${featureId}_${realFeatureVersion}.jar&quot;
+ id=&quot;${featureId}&quot;
+ version=&quot;${realFeatureVersion}&quot;&gt;
+ &lt;category name=&quot;${updateSiteCategoryName}&quot;/&gt;
+ &lt;/feature&gt;
+</echo>
+ </target>
+</project>
View
26 org.rssowl.build/build-files/subversionSupport.xml
@@ -0,0 +1,26 @@
+<project name="to be included into customTargets.xml">
+
+ <import file="fetchSvnAll.xml"/>
+
+ <path id="project.classpath">
+ <pathelement location="${buildHome}/build-files/svn/svnant.jar"/>
+ <pathelement location="${buildHome}/build-files/svn/svnClientAdapter.jar"/>
+ <pathelement location="${buildHome}/build-files/svn/svnjavahl.jar"/>
+ <pathelement location="${buildHome}/build-files/svn/svnkit.jar"/>
+ <pathelement location="${buildHome}/build-files/svn/ganymed.jar"/>
+ </path>
+
+ <target name="fetchSubversion" if="is.svn.fetch">
+ <taskdef resource="svntask.properties" classpathref="project.classpath"/>
+ <property name="fetchTag" value="HEAD"/>
+ <antcall target="fetch.svn.all"/>
+ </target>
+
+ <target name="svn.co">
+ <property name="target.dir" value="${element.id}"/>
+ <svn failonerror="true" svnkit="true" javahl="false" username="${pluginbuilder.svn.user}" password="${pluginbuilder.svn.password}">
+ <checkout revision="${fetchTag}" url="${url}/${project.name}" destPath="${buildDirectory}/${target}/${target.dir}" />
+ </svn>
+ </target>
+
+</project>
View
237 org.rssowl.build/build.xml
@@ -0,0 +1,237 @@
+<!-- This script will not be uploaded to the server.
+ PLEASE DO NOT MODIFY
+ If you modify this script it is likely that the build will not work on the server
+-->
+<project name="Build Facade" default="main">
+ <taskdef resource="org/pluginbuilder/anttasks/pluginbuildertasks.properties" classpath="build-files/pluginbuilder-anttasks.jar" />
+
+ <GetHostName />
+ <property file="build_${hostname}.properties" />
+ <property file="build_local.properties" />
+ <property name="eclipse.installation.dir" value="${eclipseDir}"/>
+ <import file="build-files/build_shared.xml"/>
+
+ <target name="-properties">
+
+ <!-- versioning -->
+ <property name="build.version" value="HEAD"/>
+ <property file="releases/${build.version}.properties" />
+ <tstamp>
+ <format property="version.qualifier" pattern="yyyyMMddHHmm" timezone="GMT" unit="minute"/>
+ </tstamp>
+
+ <property name="buildTypePresentation" value=""/>
+ <property name="version.full" value="${version}.${version.qualifier}${buildTypePresentation}"/>
+
+ <!-- includes -->
+ <GetHostName />
+ <property file="build_${hostname}.properties" />
+ <property file="build_local.properties" />
+ <property file="pluginbuilder.config" />
+
+ <!-- set defaults -->
+ <property name="buildTarget" value="main"/>
+ <property name="verboseAnt" value="-Ddummy=true"/>
+
+ <!-- check if clean should be called -->
+ <condition property="is.clean">
+ <or>
+ <equals arg1="main" arg2="${buildTarget}" trim="true"/>
+ <equals arg1="fetch" arg2="${buildTarget}" trim="true"/>
+ </or>
+ </condition>
+
+ <condition property="no.rcp.build" value="true">
+ <not>
+ <equals arg1="${pluginbuilder.is.rcpbuild}" arg2="true"/>
+ </not>
+ </condition>
+
+ </target>
+
+ <target name="-prepare.build.host">
+
+ <antcall target="unpack.eclipse"/>
+
+ <available type="dir" file="${eclipseDir}/plugins" property="eclipseDir.plugins.exists"/>
+ <fail message="Could not find directory ${eclipseDir}/plugins. Please check eclipseDir in build_local.properties" unless="eclipseDir.plugins.exists"/>
+
+ <!-- determine buildfiles -->
+ <BundleFileLocator eclipseInstallationRoot="${eclipseDir}" bundleId="org.eclipse.pde.build" filePath="scripts/build.xml" property="regularbuildfile" />
+ <dirname file="${regularbuildfile}" property="scriptdir"/>
+ <property name="productbuildfile" value="${scriptdir}/productBuild/productBuild.xml"/>
+
+ <!-- determine launcher -->
+ <BundleFileLocator eclipseInstallationRoot="${eclipseDir}" bundleId="org.eclipse.equinox.launcher" property="equinoxjar" />
+
+ </target>
+
+ <target name="-clean" if="is.clean">
+ <echo level="info" message="Cleaning directory ${buildDirectory}"/>
+ <delete dir="${buildDirectory}" verbose="false"/>
+ <mkdir dir="${buildDirectory}"/>
+ </target>
+
+ <target name="-build" depends="-properties,-clean,-prepare.build.host">
+ <condition property="no.rcp.build" value="true">
+ <not>
+ <equals arg1="${pluginbuilder.is.rcpbuild}" arg2="true"/>
+ </not>
+ </condition>
+ <antcall target="-build.internal">
+ <param name="buildfile" value="${regularbuildfile}"/>
+ </antcall>
+ <!-- build rcp omitting fetch -->
+ <property name="buildSystemProperty.skipFetch" value="true"/>
+ <antcall target="-build.rcp.internal"/>
+ </target>
+
+ <target name="-build.rcp.internal" unless="no.rcp.build">
+ <property prefix="buildSystemProperty." file="${buildHome}/build-files/build_rcp.properties"/>
+ <antcall target="-checkProductProperty"/>
+ <antcall target="-build.internal">
+ <param name="buildfile" value="${productbuildfile}"/>
+ </antcall>
+ </target>
+
+ <target name="-checkProductProperty">
+ <condition property="isProductSet">
+ <and>
+ <isset property="buildSystemProperty.product"/>
+ <not><equals arg1="${product}" arg2=""/></not>
+ </and>
+ </condition>
+ <fail message="Building an RCP application requires a Product Configuration file to be specified ('product' property)." unless="isProductSet"/>
+ </target>
+
+ <target name="rcp" depends="-properties,-clean,-prepare.build.host" description="Build RCP only">
+ <fail message="Please enable and configure an RCP build in the Plug-in Builder Editor before calling this target." if="no.rcp.build"/>
+ <antcall target="-build.rcp.internal"/>
+ </target>
+
+ <target name="-build.internal">
+ <property name="buildResultsDirectory" value="${buildDirectory}/results" />
+
+ <java classname="org.eclipse.equinox.launcher.Main" fork="true"
+ failonerror="true" errorproperty="build.stderr">
+ <arg value="-ws" />
+ <arg value="${ws}" />
+ <arg value="-os" />
+ <arg value="${os}" />
+ <arg value="-application" />
+ <arg value="org.eclipse.ant.core.antRunner" />
+ <arg value="-buildfile" />
+ <arg value="${buildfile}" />
+ <arg value="${buildTarget}" />
+ <arg value="-data" />
+ <arg value="${buildDirectory}/workspace" />
+ <arg value="${verboseAnt}"/>
+ <jvmarg value="-Dbasews=${ws}" />
+ <jvmarg value="-Dbaseos=${os}" />
+ <jvmarg value="-Dbasearch=${arch}" />
+ <jvmarg value="-Dbuilder=${buildHome}/build-files" />
+ <jvmarg value="-DjavacFailOnError=true"/>
+ <jvmarg value="-DbuildDirectory=${buildDirectory}"/>
+ <jvmarg value="-DbuildResultsDirectory=${buildResultsDirectory}"/>
+ <jvmarg value="-DbaseLocation=${eclipseDir}"/>
+ <jvmarg value="-DbuildHome=${buildHome}"/>
+ <jvmarg value="-Dversion.full=${version.full}"/>
+ <jvmarg value="-Dversion.qualifier=${version.qualifier}${buildTypePresentation}"/>
+ <jvmarg value="-DbuildType=${buildType}"/>
+ <jvmarg value="-DfetchTag=${fetchTag}"/>
+ <jvmarg value="-DbuildProperties=${buildHome}/build-files/build.properties"/>
+
+ <classpath>
+ <pathelement location="${equinoxjar}" />
+ </classpath>
+
+ <syspropertyset>
+ <propertyset>
+ <propertyref prefix="buildSystemProperty"/>
+ <mapper type="glob" from="buildSystemProperty.*" to="*"/>
+ </propertyset>
+ </syspropertyset>
+ </java>
+
+ <!-- save stderr for scrutinizing later -->
+ <echo file="${buildDirectory}/stderr.txt" append="true">${build.stderr}</echo>
+
+ <echo taskname="stderr">${build.stderr}</echo>
+
+ <condition property="is.build.error" value="true">
+ <contains string="${build.stderr}" substring="BUILD FAILED"/>
+ </condition>
+ <!-- Note that the fail task throws an exception which will be intercepted
+ from calling antcalls. During that processing the status will
+ be lost and set to 1. Therefor ethe processing of TESTS FAILED which should
+ return an exit status of 2 can only take place in main targets. -->
+ <fail message="PDE Build failed" if="is.build.error" status="1"/>
+
+ </target>
+
+ <target name="main-cc"
+ description="This target is suited to be run from cruisecontrol. The property 'label' is expected to be set from cruisecontrol.">
+ <!-- Note that pluginbuilder also provides an EclipseLabelIncrementer which creates Eclipse version labels.
+ see http://www.pluginbuilder.org/faq.html -->
+ <property name="version.full" value="${label}"/>
+ <SetRegex input="${label}" match=".+\..+\..+\.(.*)" property="version.qualifier" value="\1" />
+ <antcall target="-build"/>
+ </target>
+
+ <target name="main" description="Run the main target of customTargets.xml. Return status 0,1,2 for Success, Build Failure and Test Failure">
+ <property name="buildTarget" value="main"/>
+ <antcall target="-build"/>
+
+ <!-- this must be done in a top level target because otherwise the
+ status would not g