<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to feature-requests</title><link>https://sourceforge.net/p/guse/feature-requests/</link><description>Recent changes to feature-requests</description><atom:link href="https://sourceforge.net/p/guse/feature-requests/feed.rss" rel="self"/><language>en</language><lastBuildDate>Sat, 02 Jul 2016 23:48:32 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/guse/feature-requests/feed.rss" rel="self" type="application/rss+xml"/><item><title>Add support for CREAM CE </title><link>https://sourceforge.net/p/guse/feature-requests/80/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Will you support CREAM CE direct job submission in near future?&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Muhammad Farhan Sjaugi</dc:creator><pubDate>Sat, 02 Jul 2016 23:48:32 -0000</pubDate><guid>https://sourceforge.netfeafaf86c0613257c56b5cc0714865e865d350ad</guid></item><item><title>Add support for DIRAC</title><link>https://sourceforge.net/p/guse/feature-requests/79/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Will DIRAC middleware will be supported soon? because our NGI (Academic Grid Malaysia) will put more effort in supporting DIRAC for efficiency, hence I would really appreciate if gUSE/WS-PGRADE can support DIRAC as well.&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Muhammad Farhan Sjaugi</dc:creator><pubDate>Mon, 18 May 2015 15:03:49 -0000</pubDate><guid>https://sourceforge.net61a1225e98f229507881cddcea82d4ca6aa62c11</guid></item><item><title>Add user-specific info to robot proxies</title><link>https://sourceforge.net/p/guse/feature-requests/78/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;EGI.eu has created a recommendation on adding portal user-specific identification to proxies created out of robot certificates used for job submission. The slides describing the approach are available here: &lt;a href="http://indico.egi.eu/indico/materialDisplay.py?contribId=0&amp;amp;materialId=slides&amp;amp;confId=2155" rel="nofollow"&gt;http://indico.egi.eu/indico/materialDisplay.py?contribId=0&amp;amp;materialId=slides&amp;amp;confId=2155&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;DCI Bridge should be extended with this robot proxy annotation method.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Zoltán Farkas</dc:creator><pubDate>Wed, 03 Dec 2014 09:55:40 -0000</pubDate><guid>https://sourceforge.netb6e68612efb687dffa4041c6164f170a9bf5b7f7</guid></item><item><title>#75 Potential speed-up in ASMService </title><link>https://sourceforge.net/p/guse/feature-requests/75/?limit=25#c171</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Yes, we can definitively call the &lt;code&gt;ASMWorkflowConfiguration&lt;/code&gt; object directly, changes on our part are minor and there's not a lot of copy-pasting anyway... Although, it would've been nicer to have it done in &lt;code&gt;ASMService&lt;/code&gt;, you know, developers tend to be lazy ;)&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chahuistle</dc:creator><pubDate>Thu, 18 Sep 2014 10:58:09 -0000</pubDate><guid>https://sourceforge.neta183e54ee181fa48dfc624f9aa72f8e0e52bc50c</guid></item><item><title>#75 Potential speed-up in ASMService </title><link>https://sourceforge.net/p/guse/feature-requests/75/?limit=25#7743</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Dear Luis,&lt;/p&gt;
&lt;p&gt;As far as I see it has already been implemented, you need to get the configuration using  asmService.getWorkflowConfig(String userID, String workflowName) method that returns an ASMWorkflowConfiguration object, modify this object as you need (setting inputs path and so on) which step does not indicate any web-service invocations, and finally save the configuration using asmService.saveWorkflowConfig(String userID, String workflowName, ASMWorkflowConfiguration) configuration) method.&lt;/p&gt;
&lt;p&gt;Hope this solution is acceptable for you,&lt;/p&gt;
&lt;p&gt;cheers,&lt;br /&gt;
akos&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Akos Balasko</dc:creator><pubDate>Tue, 16 Sep 2014 08:50:20 -0000</pubDate><guid>https://sourceforge.net719a446d473bbd14e6bccc0412ddb6cf91e44499</guid></item><item><title>#75 Potential speed-up in ASMService </title><link>https://sourceforge.net/p/guse/feature-requests/75/?limit=25#2e27</link><description>&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;assigned_to&lt;/strong&gt;: Akos Balasko&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Zoltán Farkas</dc:creator><pubDate>Mon, 26 May 2014 12:59:35 -0000</pubDate><guid>https://sourceforge.net5a7bd724ce97686291b17eac579b5601b0ec0b3e</guid></item><item><title>Unicore IDB Tools listing should always be sorted</title><link>https://sourceforge.net/p/guse/feature-requests/77/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Navigatina through the tools from the IDB from UNICORE can result in a tedious task if they are not sorted. &lt;/p&gt;
&lt;p&gt;Currently, configuration for new UNICORE jobs do not display tools in alphabetical order, making it hard for users to find the desired tool.&lt;/p&gt;
&lt;p&gt;The attached patch can be applied (i.e., &lt;code&gt;git am --signoff &amp;lt; sorted_idbtools.path&lt;/code&gt;) to test my proposed (and tested) solution.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chahuistle</dc:creator><pubDate>Fri, 09 May 2014 20:34:14 -0000</pubDate><guid>https://sourceforge.net3dadde9a7697017ef7c49861423aaf8371cd38cc</guid></item><item><title>issue with the job inputs port</title><link>https://sourceforge.net/p/guse/feature-requests/76/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;there's an issue for the configuration of the workflows, if the same job input port has been uploaded with a file and on the sql tab the login and password field are fill then we will have the following error message on this port:&lt;/p&gt;
&lt;p&gt;"Nothing in the set relating the given input port has been defined"&lt;/p&gt;
&lt;p&gt;then the workflow can't be submitted&lt;/p&gt;
&lt;p&gt;Regards&lt;br /&gt;
Gregoire Gesmier&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">gregoire gesmier</dc:creator><pubDate>Thu, 08 May 2014 14:06:09 -0000</pubDate><guid>https://sourceforge.netfbb557d4e76e5b946aad793af95f4b3947cdd3d3</guid></item><item><title>Potential speed-up in ASMService </title><link>https://sourceforge.net/p/guse/feature-requests/75/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The ASM API, in its version 3.4.9, introduces an important step towards optimization of workflow configuration via the provided API. However, there is still a &lt;em&gt;low hanging fruit&lt;/em&gt; refactoring that would speed-up ASM-based portals. &lt;/p&gt;
&lt;p&gt;Suppose that in your code you set remote input ports. You would need to use &lt;code&gt;setRemoteInputPath&lt;/code&gt; in &lt;code&gt;ASMService&lt;/code&gt;. Looking at the source code, you'll realize that this method invokes &lt;code&gt;getWorkflowConfig(userID, workflowName)&lt;/code&gt; and this method, in turn, invokes a web service. You'll easily realize that for each port that you want to set, a web service invocation will be performed. Typically, you would implement this in a &lt;em&gt;for loop&lt;/em&gt;, as follows:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;Job&lt;/span&gt; &lt;span class="n"&gt;job&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getJobs&lt;/span&gt;&lt;span class="o"&gt;())&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;InputPort&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;job&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getInputPorts&lt;/span&gt;&lt;span class="o"&gt;())&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mustSetPort&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;generatePath&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;job&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
      &lt;span class="c1"&gt;// webservice invocation&lt;/span&gt;
      &lt;span class="n"&gt;asmService&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setRemoteInputPath&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;userID&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wfName&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;job&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getName&lt;/span&gt;&lt;span class="o"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getNumber&lt;/span&gt;&lt;span class="o"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If, however, the ASM API offered a way to pass the workflow configuration as a parameter, unnecessary web service invocations would be avoided:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="c1"&gt;// webservice call&lt;/span&gt;
&lt;span class="n"&gt;ASMWorkflowConfiguration&lt;/span&gt; &lt;span class="n"&gt;wfConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;asmService&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getWorkflowConfig&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;userID&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wfName&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;Job&lt;/span&gt; &lt;span class="n"&gt;job&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getJobs&lt;/span&gt;&lt;span class="o"&gt;())&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;InputPort&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;job&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getInputPorts&lt;/span&gt;&lt;span class="o"&gt;())&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mustSetPort&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;generatePath&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;job&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
      &lt;span class="c1"&gt;// no webservice call!&lt;/span&gt;
      &lt;span class="n"&gt;asmService&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setRemoteInputPath&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wfConfig&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;userID&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wfName&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;job&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getName&lt;/span&gt;&lt;span class="o"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getNumber&lt;/span&gt;&lt;span class="o"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;// webservice call&lt;/span&gt;
&lt;span class="n"&gt;asmService&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;saveWorkflowConfig&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;userID&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wfName&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wfConfig&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The &lt;em&gt;polymorphed&lt;/em&gt; method &lt;code&gt;setRemoteInputPath&lt;/code&gt; takes an &lt;code&gt;ASMWorkflowConfiguration&lt;/code&gt; and, internally, it is not needed to invoke a web service to obtain it. In other words, only two webservices will be executed, regardless of the number of modified jobs.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ASMService&lt;/code&gt; would declare then two methods, as follows:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setRemoteInputPath&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;userID&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;workflowName&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;jobName&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;portNumber&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;newRemotePath&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// no wf configuration... get it from the webservice&lt;/span&gt;
  &lt;span class="n"&gt;ASMWorkflowConfiguration&lt;/span&gt; &lt;span class="n"&gt;wfConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;getWorkflowConfig&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;userID&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;workflowName&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
  &lt;span class="c1"&gt;// invoke the &amp;quot;real&amp;quot; method now&lt;/span&gt;
  &lt;span class="n"&gt;setRemoteInputpath&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wfConfig&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;userID&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;workflowName&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;jobName&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;portNumber&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;newRemotePath&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setRemoteInputPath&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ASMWorkflowConfiguration&lt;/span&gt; &lt;span class="n"&gt;wfConfig&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;userID&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;workflowName&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;jobName&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;portNumber&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;newRemotePath&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// configuration is given... no need to invoke a web service&lt;/span&gt;
    &lt;span class="c1"&gt;// do whatever is needed to set remote input path, given the configuration&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I believe this change is a piece of cake to implement and would speed up things a lot if you need to operate on individual jobs.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chahuistle</dc:creator><pubDate>Wed, 16 Apr 2014 12:41:14 -0000</pubDate><guid>https://sourceforge.neta84be0b38b77e294987e3652cafcea674915a4dc</guid></item><item><title>Potential speed-up in ASMService </title><link>https://sourceforge.net/p/guse/feature-requests/75/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Ticket 75 has been modified: Potential speed-up in ASMService &lt;br /&gt;
Edited By: Zoltán Farkas (zfarkas)&lt;br /&gt;
Owner updated: None =&amp;gt; u'akosbalasko'&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chahuistle</dc:creator><pubDate>Wed, 16 Apr 2014 12:41:14 -0000</pubDate><guid>https://sourceforge.net8bf882ed11fafecc0bfc87dac19a78e9103caa97</guid></item></channel></rss>