IN2P3-Forge: Issueshttps://forge.in2p3.fr/https://forge.in2p3.fr/favicon.ico?16780521162018-05-31T15:49:48ZIN2P3-Forge
Redmine Lavoisier - Feature #33350 (New): add a XPath function multireplace()https://forge.in2p3.fr/issues/333502018-05-31T15:49:48ZReynaud SylvainSylvain.Reynaud@in2p3.fr
This function would support a variable number of arguments:
<ul>
<li>string: the input string</li>
<li>search: the substring to replace</li>
<li>replace: the replacement string for the first occurence of the search string</li>
<li>replace: the replacement string for the second occurence of the search string</li>
<li>...</li>
<li>replace: the replacement string for the Nth occurence of the search string</li>
</ul> Lavoisier - Feature #30741 (New): add research button on web sitehttps://forge.in2p3.fr/issues/307412018-04-04T10:53:55ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>with a javascript that automatically add "site:http://software.in2p3.fr/lavoisier" to the query, and send it to Google</p> Lavoisier - Feature #30735 (New): write documentation about the admin web consolehttps://forge.in2p3.fr/issues/307352018-04-04T10:51:59ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>to be done the the admin web consoled will be stabilised</p> Lavoisier - Bug #26766 (New): prefix-namespace mapping is moved to the wrong nodehttps://forge.in2p3.fr/issues/267662018-01-03T17:32:43ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<code>
<view name="test">
<connector type="StringConnector">
<parameter name="content"><![CDATA[<root><foo><child xmlns="uri://"/></foo><bar>two</bar></root>]]></parameter>
</connector>
<processors>
<element in="root">
<element in="foo" out="item">
<element-ignore/>
</element>
<element in="bar" out="item"/>
</element>
</processors>
</view>
</code> Lavoisier - Bug #20738 (New): Stacktracehttps://forge.in2p3.fr/issues/207382017-08-30T10:39:18ZLavoisier Api
<p>Build Version: 2.1.2-SNAPSHOT<br />Build Date: Thu Apr 21 07:12:14 UTC 2016<br />Author: lavoisier<br />Description: Describe the context of the problem here...<br />Stack Trace: fr.in2p3.lavoisier.interfaces.error.AdaptorException: Exception raised for view 'VAPOR_ComputingShare' [Adaptor raised exception -- javax.naming.CommunicationException: connection closed [Root exception is java.io.IOException: connection closed]]<br /> at fr.in2p3.lavoisier.chaining.link.connector.SAXConnectorLink.generate(SAXConnectorLink.java:26)<br /> at fr.in2p3.lavoisier.chaining.Chain.generate(Chain.java:120)<br /> at fr.in2p3.lavoisier.chaining.Chain.writeToCache(Chain.java:109)<br /> at fr.in2p3.lavoisier.engine.view.ViewCached.refresh(ViewCached.java:151)<br /> at fr.in2p3.lavoisier.engine.task.CacheRefreshTask.run(CacheRefreshTask.java:22)<br /> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)<br /> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)<br /> at java.lang.Thread.run(Thread.java:748)<br />Caused by: javax.naming.CommunicationException: connection closed [Root exception is java.io.IOException: connection closed]<br /> at com.sun.jndi.ldap.LdapCtx.getSearchReply(LdapCtx.java:1920)<br /> at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.getNextBatch(AbstractLdapNamingEnumeration.java:130)<br /> at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMoreImpl(AbstractLdapNamingEnumeration.java:217)<br /> at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMore(AbstractLdapNamingEnumeration.java:189)<br /> at fr.in2p3.lavoisier.connector.LDAPConnector.writeToContentHandler(LDAPConnector.java:88)<br /> at fr.in2p3.lavoisier.chaining.link.connector.SAXConnectorLink.generate(SAXConnectorLink.java:24)<br /> ... 7 more<br />Caused by: java.io.IOException: connection closed<br /> at com.sun.jndi.ldap.LdapClient.ensureOpen(LdapClient.java:1592)<br /> at com.sun.jndi.ldap.LdapClient.getSearchReply(LdapClient.java:598)<br /> at com.sun.jndi.ldap.LdapCtx.getSearchReply(LdapCtx.java:1918)<br /> ... 12 more</p> PEM - Bug #12978 (New): pem-sync pullhttps://forge.in2p3.fr/issues/129782016-03-24T17:11:58ZNguyen-Kim Kaneknguyen@ipno.in2p3.fr
<p>add a progress bar when downloading the realm</p> PEM - Feature #12976 (New): pem-sync co_pemhttps://forge.in2p3.fr/issues/129762016-03-24T17:00:48ZNguyen-Kim Kaneknguyen@ipno.in2p3.fr
<p>automatically update the ~/.bashrc with the entry :<br />path=/opt/pem/bin:$PATH at the end of 'pem-sync co_pem'</p> Lavoisier - Feature #11484 (New): improve command "lavoisier-upgrade.sh"https://forge.in2p3.fr/issues/114842015-12-10T10:39:44ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>la commande diff de linux est inadéquate => recherche d'une solution alternative type (git diff ?)</p> Lavoisier - Bug #7566 (New): fields of view "form" are disabled when they have default valuehttps://forge.in2p3.fr/issues/75662014-06-27T16:53:21ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>send the form with javascript instead</p> Lavoisier - Feature #6864 (New): support IP v6 in adaptor IPAddressAuthenticatorhttps://forge.in2p3.fr/issues/68642014-04-15T14:11:45ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>For example, use IP v6 as the common representation, and convert any IP v4 address to IP v6 address.</p> Lavoisier - Feature #6687 (New): develop a CronTriggerhttps://forge.in2p3.fr/issues/66872014-03-27T16:36:12ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p><a class="external" href="http://fr.wikipedia.org/wiki/Crontab">http://fr.wikipedia.org/wiki/Crontab</a></p> Lavoisier - Feature #6360 (New): develop a EntriesProcessor (or a EntriesRenderer)https://forge.in2p3.fr/issues/63602014-03-05T15:22:23ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>Input data example:<br /><pre><code class="xml syntaxhl"><span class="nt"><root></span>
<span class="nt"><child</span> <span class="na">id=</span><span class="s">"truc"</span> <span class="na">name=</span><span class="s">"IGNORED"</span><span class="nt">></span>
<span class="nt"><id></span>truc<span class="nt"></id></span>
<span class="nt"><leaf</span> <span class="na">name=</span><span class="s">"bidule"</span><span class="nt">></span>value<span class="nt"></leaf></span>
<span class="nt"><leaf</span> <span class="na">name=</span><span class="s">"bidule2"</span><span class="nt">></span>value2<span class="nt"></leaf></span>
<span class="nt"><leaf</span> <span class="na">name=</span><span class="s">"name"</span><span class="nt">></span>nom<span class="nt"></leaf></span>
<span class="nt"></child></span>
<span class="nt"></root></span>
</code></pre></p>
<p>Plugin configuration example:<br /><pre><code class="xml syntaxhl"><span class="nt"><e:root></span>
<span class="nt"><e:entries</span> <span class="na">base=</span><span class="s">"root/child"</span> <span class="na">key=</span><span class="s">"id/text()"</span><span class="nt">></span>
<span class="nt"><e:entry</span> <span class="na">base=</span><span class="s">"leaf"</span> <span class="na">key=</span><span class="s">"@name"</span> <span class="na">value=</span><span class="s">"text()"</span><span class="nt">/></span>
<span class="nt"></e:entries></span>
<span class="nt"></e:root></span>
</code></pre></p>
<p>Result example:<br /><pre><code class="xml syntaxhl"><span class="nt"><e:entries></span>
<span class="nt"><e:entries</span> <span class="na">key=</span><span class="s">"truc"</span><span class="nt">></span>
<span class="nt"><e:entry</span> <span class="na">key=</span><span class="s">"value"</span><span class="nt">></span>machin<span class="nt"></e:entry></span>
<span class="nt"><e:entry</span> <span class="na">key=</span><span class="s">"bidule"</span><span class="nt">></span>value<span class="nt"></e:entry></span>
<span class="nt"><e:entry</span> <span class="na">key=</span><span class="s">"name"</span><span class="nt">></span>nom<span class="nt"></e:entry></span>
<span class="nt"></e:entries></span>
<span class="nt"></e:entries></span>
</code></pre></p> Lavoisier - Feature #6353 (New): support new parameter type "Language"https://forge.in2p3.fr/issues/63532014-03-04T15:10:47ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>The goal is to support langage-specific syntax-highlight in web console and configuration wizard (e.g. SQL, XQuery...).</p> Lavoisier - Feature #6325 (New): enable limiting the maximum output sizehttps://forge.in2p3.fr/issues/63252014-03-03T10:47:04ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>All the opened elements should be automatically closed in order to keep the XML output well formed.</p> Lavoisier - Feature #6303 (New): support attributes @package and @id on <config>https://forge.in2p3.fr/issues/63032014-02-27T17:00:28ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>This will replace metadata <category>.</p>
This must correspond to (or must be deduced from) file system:
<ul>
<li>@package must correspond to directory name</li>
<li>@id must correspond to file name</li>
</ul>
<p>Element <view> may support attribute @private="true|FALSE".</p>
When referencing a data view:
<ul>
<li>if it is in another package, then add package name : view('my.package.myView').</li>
<li>if it is in the same package, then package name will be automatically added.</li>
</ul> Lavoisier - Feature #6260 (New): support introspection of view-templatehttps://forge.in2p3.fr/issues/62602014-02-24T18:22:11ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>a process should be able to query the list of parameters of a view-template</p> Topology Manager - Feature #5757 (New): Topology manager- error detection in mezzaninehttps://forge.in2p3.fr/issues/57572014-01-07T13:29:11ZRalet Damian
<p>We noticed that it is possible to set two time a relation of a carrier to the same mezzanine (in our case it was mez-112).<br />It would be nice if the TM could noticed this error, and bring it up.</p> Electronic Control and Monitoring - Feature #5751 (New): buildcfg with some error messagehttps://forge.in2p3.fr/issues/57512014-01-06T17:43:19ZRalet Damian
I am still missing some information errors like:
<ul>
<li>no FRS (I tryed, no information was telling me that it was missing)</li>
<li>15C, not in database, and yet no error message.</li>
</ul> AGATA DAQ - Support #5739 (New): visu1 outhttps://forge.in2p3.fr/issues/57392014-01-04T13:46:50ZRalet Damian
<p>Since we restarted the system end of year 2013, we cannot access, connect, boot VISU1.</p> Topology Manager - Feature #5729 (New): Title in firefoxhttps://forge.in2p3.fr/issues/57292014-01-03T18:58:58ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>Should be great to have a real name in the firefox tab instead of <a class="external" href="http://scgw2:6095">http://scgw2:6095</a></p> Topology Manager - Feature #5719 (New): Launching server easilyhttps://forge.in2p3.fr/issues/57192014-01-03T16:01:57ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>Need to have a script or at leats an easier way to relaunch TM_server when Damian killall screen .... (as root)</p> Electronic Control and Monitoring - Task #5688 (New): Mercurialiser configuration fileshttps://forge.in2p3.fr/issues/56882013-12-19T09:59:34ZRalet Damian
<p>The miroring of scgw1 to scgw2 is not existing anymore. <br />We would need a backup of the configuration files (digitizer DB, crystal_rc, others?) <br />in case of problem. The software and a procedure on how to install them could be needed as well.</p> DCOD - Bug #5592 (New): environment test missing in ./configurehttps://forge.in2p3.fr/issues/55922013-11-29T11:12:40ZDosme NicolasENX - Support #5572 (New): Cleaning autorconfhttps://forge.in2p3.fr/issues/55722013-11-25T15:23:38ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>Should clean build directoy at the end of install phase.</p>
<p>(Removing at least automate.cache)</p> Lavoisier - Feature #5558 (New): add XPath function build_xpath()https://forge.in2p3.fr/issues/55582013-11-22T14:51:40ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<pre><code class="xml syntaxhl"><span class="nt"><view</span> <span class="na">name=</span><span class="s">"v"</span><span class="nt">></span>
<span class="nt"><argument</span> <span class="na">name=</span><span class="s">"site"</span><span class="nt">></span>NONE<span class="nt"></argument></span>
<span class="nt"><connector</span> <span class="na">type=</span><span class="s">"XMLConnector"</span><span class="nt">></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"content"</span><span class="nt">></span>
<span class="nt"><entry</span> <span class="na">key=</span><span class="s">"CC-IN2P3"</span><span class="nt">></span>Lyon<span class="nt"></entry></span>
<span class="nt"><entry</span> <span class="na">key=</span><span class="s">"LAPP"</span><span class="nt">></span>Annecy<span class="nt"></entry></span>
<span class="nt"><entry</span> <span class="na">key=</span><span class="s">"CERN"</span><span class="nt">></span>Geneve<span class="nt"></entry></span>
<span class="nt"></parameter></span>
<span class="nt"></connector></span>
<span class="nt"><processors></span>
<span class="c"><!-- the less flexible solution (the XPath is fixed in the view) --></span>
<span class="nt"><processor</span> <span class="na">type=</span><span class="s">"SelectProcessor"</span> <span class="na">match=</span><span class="s">"/*/*[@key=$site]"</span> <span class="na">disabled=</span><span class="s">"$site='NONE'"</span><span class="nt">/></span>
<span class="nt"></processors></span>
<span class="nt"></view></span>
<span class="c"><!-- the less efficient solution (requires a data structure to be built) --></span>
<span class="nt"><parameter</span> <span class="na">eval=</span><span class="s">"view('v')/*/*[@key=$site]"</span><span class="nt">/></span>
<span class="c"><!-- argument 'site' is evaluated by view 'v' --></span>
<span class="nt"><parameter</span> <span class="na">eval=</span><span class="s">"view('v/*/*[@key=$site]', arguments())"</span><span class="nt">/></span><span class="c"><!-- view 'v' must have <argument name="site"/> --></span>
<span class="nt"><parameter</span> <span class="na">eval=</span><span class="s">"view('v/*/*[@key=arguments()[@key=&quot;site&quot;]])]', arguments())"</span><span class="nt">/></span>
<span class="c"><!-- argument 'site' is evaluated by current view --></span>
<span class="nt"><parameter</span> <span class="na">eval=</span><span class="s">"view(concat('v/*/*[@key=',quot($site),']'))"</span><span class="nt">/></span>
<span class="nt"><parameter</span> <span class="na">eval=</span><span class="s">"view(build_xpath('v/*/*[@key={$site}'))"</span><span class="nt">/></span>
</code></pre>
<p><ins>Note</ins>: build_xpath() must disable optimizer for {match()/@id}</p> G4IDS - Task #5537 (New): [Config 2009-2012] Estimated position of the implantation pointhttps://forge.in2p3.fr/issues/55372013-11-20T14:21:04ZSotty Christophe
<p>An estimation of the source position offset(on the z-ais) respect to the beta detector is requested in order to quantify the beam alignment. The extracted value could be compared to the collimator sie and the tape size. Does the extracted value make sense?</p>
<p>- How to extract the estimated offset?<br />Experimentally the efficiencies of the left and right detectors are found to be different. This assymetry could be explain by a assymetry of the imp. point-plastic distances.<br />By moving the source on the z-axis we will try to reproduce the individual experimental efficiencies, and more precisely their ratios for all the combinations.</p>
<p>%<span>%%</span>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />%<span>%%</span>%%%%% Scheme %<span>%%</span>%%%<br />%<span>%%</span>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />O: point-like source</p>
<pre><code>+<del>--</del>> z-axis<br /> '<br /> '<br /> '<br /> v<br /> x-axis</code></pre>
<hr />
<ul>
<li> *</li>
<li> O * </li>
<li> *</li>
<li> *</li>
<li> *</li>
<li> * </li>
<li> *</li>
<li> *</li>
<li> *</li>
</ul>
<p>%<span>%%</span>%%%%%%%%%%%%%%%%%%%%%%%%<br />%<span>%%</span>%%%%%%%%%%%%%%%%%%%%%%%%<br />%<span>%%</span>%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p>- Go further:<br /> (1). Make the same exercice by moving the point-like source on the y-axis<br /> (2). Make the same exercice than in (1). by moving the point-like source on the zy-plan of the implantation tape.<br /> (3). Make the same exercice that in (1) and (2) for a non-pointlike source.</p> G4IDS - Task #5536 (New): [Config 2009-2012] Gaussian-like vs Point-like sourcehttps://forge.in2p3.fr/issues/55362013-11-20T14:01:47ZSotty Christophe
<p>In order to bring some reproduction accuracy, a 2D random generator for the position will be created.</p>
<p>The estimated profile in respective perpendicular plans to the beam axis should be Gaussian.</p> ENX - Feature #5527 (New): Named register listhttps://forge.in2p3.fr/issues/55272013-11-18T17:30:28ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>It should be great to remove template-register.ads from driver files and to list the regsiter from a configuration file...</p>
<p>need to define a way to find this configuration file and some others details, but to do ...</p> DCOD - Feature #5503 (New): test ada 2012 in ./configurehttps://forge.in2p3.fr/issues/55032013-11-13T16:54:14ZDosme Nicolas
<p>We can test availability of ada 2012 features in ./configure.<br />and not wait compilation to know that the used compiler is not the good one.</p> ENX - Bug #5447 (New): make distclean - DCODhttps://forge.in2p3.fr/issues/54472013-10-30T10:18:56ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>After 'make distclean' in /docd/, some objs and libraries are not cleaned.</p>
<pre>
? enx/common/ID_Handler/libidhandler.a
? enx/common/ID_Handler/libidhandler.so
? enx/common/ID_Handler/obj_dynamic/auto.cgpr
? enx/common/ID_Handler/obj_dynamic/b__idhandler.adb
? enx/common/ID_Handler/obj_dynamic/b__idhandler.ads
? enx/common/ID_Handler/obj_dynamic/idhandler.lexch
? enx/common/ID_Handler/obj_static/auto.cgpr
? enx/common/ID_Handler/obj_static/b__idhandler.adb
? enx/common/ID_Handler/obj_static/b__idhandler.ads
? enx/common/ID_Handler/obj_static/idhandler.lexch
? enx/common/Types/libenxtypes.a
? enx/common/Types/libenxtypes.so
? enx/common/Types/obj_dynamic/auto.cgpr
? enx/common/Types/obj_dynamic/b__enxtypes.adb
? enx/common/Types/obj_dynamic/b__enxtypes.ads
? enx/common/Types/obj_dynamic/enxtypes.lexch
? enx/common/Types/obj_static/auto.cgpr
? enx/common/Types/obj_static/b__enxtypes.adb
? enx/common/Types/obj_static/b__enxtypes.ads
? enx/common/Types/obj_static/enxtypes.lexch
? enx/common/plugins/libenxplugins.a
? enx/common/plugins/libenxplugins.so
? enx/common/plugins/obj_dynamic/auto.cgpr
? enx/common/plugins/obj_dynamic/b__enxplugins.adb
? enx/common/plugins/obj_dynamic/b__enxplugins.ads
? enx/common/plugins/obj_dynamic/enxplugins.lexch
? enx/common/plugins/obj_static/auto.cgpr
? enx/common/plugins/obj_static/b__enxplugins.adb
? enx/common/plugins/obj_static/b__enxplugins.ads
? enx/common/plugins/obj_static/enxplugins.lexch
? enx/common/soap/libenxsoapclient.a
? enx/common/soap/libenxsoapclient.so
? enx/common/soap/obj_dynamic/auto.cgpr
? enx/common/soap/obj_dynamic/b__enxsoapclient.adb
? enx/common/soap/obj_dynamic/b__enxsoapclient.ads
? enx/common/soap/obj_dynamic/enxsoapclient.lexch
? enx/common/soap/obj_static/auto.cgpr
? enx/common/soap/obj_static/b__enxsoapclient.adb
? enx/common/soap/obj_static/b__enxsoapclient.ads
? enx/common/soap/obj_static/enxsoapclient.lexch
? enx/common/soap/sources
? enx/common/soap/src/client/server_xml_service-client.adb
? enx/common/soap/src/client/server_xml_service-client.ads
? enx/common/soap/src/common/server_xml_service-types.ads
? enx/common/soap/src/common/server_xml_service.ads
? enx/common/soap/src/server/server_web_enx.adb
? enx/common/soap/src/server/server_xml_service-cb.adb
? enx/common/soap/src/server/server_xml_service-cb.ads
? enx/common/soap/src/server/server_xml_service-server.adb
? enx/common/soap/src/server/server_xml_service-server.ads
? enx/common/soap/wsdl/server_xml.wsdl
? enx/server/UI/remote-console.adb.orig
? enx/server/_init.enx
? enx/server/build/x86_64/bin/remote-console
? enx/server/build/x86_64/bin/server_web_enx
? enx/server/build/x86_64/obj/b~remote-console.adb
? enx/server/build/x86_64/obj/b~remote-console.ads
? enx/server/build/x86_64/obj/b~server_web_enx.adb
? enx/server/build/x86_64/obj/b~server_web_enx.ads
? enx/server/soap/server_web_enx.adb
? enx/server/soap/server_xml.wsdl
? enx/server/soap/server_xml_service-cb.adb
? enx/server/soap/server_xml_service-cb.ads
? enx/server/soap/server_xml_service-client.adb
? enx/server/soap/server_xml_service-client.ads
? enx/server/soap/server_xml_service-server.adb
? enx/server/soap/server_xml_service-server.ads
? enx/server/soap/server_xml_service-types.ads
? enx/server/soap/server_xml_service.ads
</pre> Lavoisier - Feature #5442 (New): create a view 'stoppoint'https://forge.in2p3.fr/issues/54422013-10-29T17:02:12ZReynaud SylvainSylvain.Reynaud@in2p3.fr
This view should:
<ul>
<li>enable dumping output of connector, then 1st processor, then 2nd processor, etc., with a single clic.</li>
<li>dump configuration (with disabled processors in grey).</li>
<li>and most importantly: manage view arguments for each execution!</li>
</ul> ENX - Support #5431 (New): Cleaning compilation chainhttps://forge.in2p3.fr/issues/54312013-10-29T10:18:49ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>unused configure.ac in enx/server</p> CLASS - Feature #5377 (New): enrichment factoryhttps://forge.in2p3.fr/issues/53772013-10-21T15:15:07ZMOUGINOT Baptiste
<p>Do a fabrication plant which can build UOX fuel...</p> CLASS - Feature #5350 (New): Set some quality criteria on Pu when building a MOX fuelhttps://forge.in2p3.fr/issues/53502013-10-15T19:18:36ZMOUGINOT BaptisteLavoisier - Feature #5090 (New): add new adaptor type : <writer>https://forge.in2p3.fr/issues/50902013-09-17T15:49:22ZReynaud SylvainSylvain.Reynaud@in2p3.fr
Adaptors example:
<ul>
<li>SQLWriter</li>
<li>HTTPWriter</li>
<li>FileWriter</li>
<li>EmailWriter</li>
</ul>
<p>Usage example:<br /><pre><code class="xml syntaxhl"><span class="nt"><view</span> <span class="na">name=</span><span class="s">"ldap-to-sql"</span><span class="nt">></span>
<span class="nt"><connector</span> <span class="na">type=</span><span class="s">"LDAPConnector"</span><span class="nt">/></span>
<span class="nt"><writer</span> <span class="na">type=</span><span class="s">"SQLWriter"</span> <span class="na">match=</span><span class="s">"/o/cn[@id='fr']/ou[@id='in2p3']/dn"</span>
<span class="na">recovery-base-directory=</span><span class="s">"$TMP/recovery"</span> <span class="na">recovery-period=</span><span class="s">"PT1M"</span><span class="nt">></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"url"</span><span class="nt">></span>jdbc:...<span class="nt"></parameter></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"query"</span><span class="nt">></span>INSERT INTO my_table (?,?)<span class="nt"></parameter></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"parameters"</span><span class="nt">></span>
<span class="nt"><entry</span> <span class="na">eval=</span><span class="s">"@id"</span><span class="nt">/></span>
<span class="nt"><entry</span> <span class="na">eval=</span><span class="s">"ancestor::cn/@id"</span><span class="nt">/></span>
<span class="nt"></parameter></span>
<span class="nt"><trigger</span> <span class="na">type=</span><span class="s">"DeltaTimeTrigger"</span><span class="nt">></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"hours"</span><span class="nt">></span>1<span class="nt"></parameter></span>
<span class="nt"></trigger></span>
<span class="nt"></writer></span>
<span class="nt"></view></span>
</code></pre></p>
<p>Interface:<br /><pre><code class="java syntaxhl"><span class="kd">public</span> <span class="kd">interface</span> <span class="nc">Writer</span> <span class="kd">extends</span> <span class="nc">Adaptor</span> <span class="o">{</span>
<span class="cm">/**
* @return the list of exceptions caused by bad configuration (event will not be retried).
*/</span>
<span class="kd">public</span> <span class="nc">Exception</span><span class="o">[]</span> <span class="nf">getConfigurationExceptions</span><span class="o">();</span>
<span class="cm">/**
* A resource can be for example: a connection to database, an URL to an AVAILABLE web service, a pointer to file...
* @throws ResourceAlreadyOpened if resource was already opened.
* @return true if opening resource is successful, else false.
*/</span>
<span class="kd">public</span> <span class="kt">boolean</span> <span class="nf">openResource</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">ResourceAlreadyOpened</span><span class="o">;</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">closeResource</span><span class="o">();</span>
<span class="o">}</span>
</code></pre></p>
<p>Algorithm:<br /><pre><code class="java syntaxhl"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">WriterLink</span> <span class="o">{</span>
<span class="kd">private</span> <span class="nc">File</span> <span class="n">m_base_directory</span><span class="o">;</span>
<span class="kd">private</span> <span class="nc">Duration</span> <span class="n">m_retry_period</span><span class="o">;</span>
<span class="kd">private</span> <span class="nc">EventStore</span> <span class="n">m_unrecoverable</span><span class="o">;</span>
<span class="kd">private</span> <span class="nc">EventStore</span> <span class="n">m_recoverable</span><span class="o">;</span>
<span class="kd">private</span> <span class="nc">Writer</span> <span class="n">m_writer</span><span class="o">;</span>
<span class="kd">private</span> <span class="nc">Set</span><span class="o"><</span><span class="nc">Exception</span><span class="o">></span> <span class="n">m_configuration_exceptions</span><span class="o">;</span>
<span class="kd">public</span> <span class="nf">WriterLink</span><span class="o">()</span> <span class="o">{</span>
<span class="n">m_configuration_exceptions</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">HashSet</span><span class="o"><</span><span class="nc">Exception</span><span class="o">>();</span>
<span class="n">m_configuration_exceptions</span><span class="o">.</span><span class="na">addAll</span><span class="o">(</span><span class="nc">Arrays</span><span class="o">.</span><span class="na">asList</span><span class="o">(</span><span class="n">m_writer</span><span class="o">.</span><span class="na">getConfigurationExceptions</span><span class="o">()));</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">write</span><span class="o">(</span><span class="nc">Xml</span> <span class="n">view</span><span class="o">)</span> <span class="o">{</span>
<span class="nc">EventReader</span> <span class="n">input</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">EventReader</span><span class="o">(</span><span class="n">view</span><span class="o">);</span>
<span class="n">m_unrecoverable</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">EventStore</span><span class="o">(</span><span class="n">m_viewId</span><span class="o">);</span>
<span class="n">m_unrecoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="nc">StartElement</span><span class="o">(</span><span class="s">"root"</span><span class="o">));</span>
<span class="k">while</span><span class="o">(!</span><span class="n">input</span><span class="o">.</span><span class="na">isEmpty</span><span class="o">()</span> <span class="o">&&</span> <span class="o">!</span><span class="n">isTriggered</span><span class="o">)</span> <span class="o">{</span>
<span class="nl">label:</span> <span class="k">while</span><span class="o">(!</span><span class="n">isTriggered</span><span class="o">)</span> <span class="o">{</span>
<span class="k">switch</span> <span class="o">(</span><span class="n">m_writer</span><span class="o">.</span><span class="na">openResource</span><span class="o">())</span> <span class="o">{</span>
<span class="k">case</span> <span class="nl">WAS_ALREADY_OPENED:</span>
<span class="nc">Thread</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="n">m_retry_period</span><span class="o">);</span>
<span class="k">break</span> <span class="n">label</span><span class="o">;</span>
<span class="k">case</span> <span class="nl">IS_OPENED:</span>
<span class="k">break</span> <span class="n">label</span><span class="o">;</span>
<span class="k">case</span> <span class="nl">IS_CLOSED:</span>
<span class="nc">Thread</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="n">m_retry_period</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="n">m_recoverable</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">EventStore</span><span class="o">(</span><span class="n">m_viewId</span><span class="o">);</span>
<span class="k">try</span> <span class="o">{</span>
<span class="k">for</span> <span class="o">(</span><span class="n">event</span> <span class="o">:</span> <span class="n">input</span><span class="o">.</span><span class="na">getEvents</span><span class="o">())</span> <span class="o">{</span>
<span class="k">switch</span><span class="o">(</span><span class="n">event</span><span class="o">.</span><span class="na">getState</span><span class="o">())</span> <span class="o">{</span>
<span class="k">case</span> <span class="nl">UNSELECTED:</span>
<span class="n">m_recoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">event</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="nl">SELECTED:</span>
<span class="k">this</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">event</span><span class="o">.</span><span class="na">getCurrent</span><span class="o">());</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="nl">DESCENDANT_OF_SELECTED:</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">ResourceClosedException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
<span class="k">for</span> <span class="o">(</span><span class="n">event</span> <span class="o">:</span> <span class="n">input</span><span class="o">.</span><span class="na">getEvents</span><span class="o">())</span> <span class="o">{</span>
<span class="n">m_recoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">event</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="n">m_recoverable</span><span class="o">.</span><span class="na">close</span><span class="o">();</span> <span class="c1">// remove the file if if contains no event</span>
<span class="n">m_recoverable</span><span class="o">.</span><span class="na">moveTo</span><span class="o">(</span><span class="n">input</span><span class="o">);</span>
<span class="o">}</span>
<span class="n">m_writer</span><span class="o">.</span><span class="na">close</span><span class="o">();</span>
<span class="n">m_unrecoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="nc">EndElement</span><span class="o">(</span><span class="s">"root"</span><span class="o">));</span>
<span class="n">m_unrecoverable</span><span class="o">.</span><span class="na">close</span><span class="o">();</span> <span class="c1">// remove the file if it contains no event</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">write</span><span class="o">(</span><span class="nc">Element</span> <span class="n">current</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">ResourceClosedException</span> <span class="o">{</span>
<span class="k">try</span> <span class="o">{</span>
<span class="n">m_writer</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">current</span><span class="o">);</span>
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="n">m_configuration_exceptions</span><span class="o">.</span><span class="na">contains</span><span class="o">(</span><span class="n">e</span><span class="o">))</span> <span class="o">{</span>
<span class="n">m_unrecoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">current</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">switch</span> <span class="o">(</span><span class="n">m_writer</span><span class="o">.</span><span class="na">openResource</span><span class="o">())</span> <span class="o">{</span>
<span class="k">case</span> <span class="nl">WAS_ALREADY_OPENED:</span>
<span class="n">m_recoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">current</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="nl">IS_OPENED:</span>
<span class="k">try</span> <span class="o">{</span>
<span class="n">m_writer</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">current</span><span class="o">);</span>
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
<span class="n">m_recoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">current</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="nl">IS_CLOSED:</span>
<span class="k">throw</span> <span class="k">new</span> <span class="nf">ResourceClosedException</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
</code></pre></p> Lavoisier - Feature #5009 (New): ICalRendererhttps://forge.in2p3.fr/issues/50092013-09-12T10:46:56ZReynaud SylvainSylvain.Reynaud@in2p3.frLavoisier - Feature #5008 (New): ICalSerializerhttps://forge.in2p3.fr/issues/50082013-09-12T10:44:37ZReynaud SylvainSylvain.Reynaud@in2p3.frLavoisier - Feature #4934 (New): implement some additional cache adaptorshttps://forge.in2p3.fr/issues/49342013-08-26T17:13:59ZReynaud SylvainSylvain.Reynaud@in2p3.fr
Technologies to be considered are:
<ul>
<li>in-memory cache (DOM, DOM4J or recorded stream of XML events)</li>
<li>on-disk serialized DOM tree or recorded stream of XML events</li>
<li>native XML database</li>
<li>relational database</li>
<li>no-SQL dataabse (e.g. MongoDB)</li>
</ul> Lavoisier - Feature #4906 (New): XPath2SQLTemplate : add support for SQL functionshttps://forge.in2p3.fr/issues/49062013-08-16T11:13:25ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<pre>
http://host:8080/lavoisier/database/dept:*[sql:contains(dno,'DR')]
</pre> Lavoisier - Feature #4905 (New): XPath2SQLTemplate : add support for XPath functionshttps://forge.in2p3.fr/issues/49052013-08-16T11:10:47ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<pre>
http://host:8080/lavoisier/database/dept:*[starts-with(dno,'DR')]
</pre> Lavoisier - Feature #4904 (New): XPath2SQLTemplate : add support for ORDER BYhttps://forge.in2p3.fr/issues/49042013-08-16T11:01:42ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<pre>
http://host:8080/lavoisier/database/dept:*?sort=dno,course
</pre> Lavoisier - Feature #4871 (New): ExcelSerializerhttps://forge.in2p3.fr/issues/48712013-07-31T18:42:31ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>This adaptor may rely on the apache POI library.</p> Lavoisier - Feature #4870 (New): BinarySerializerhttps://forge.in2p3.fr/issues/48702013-07-31T18:36:58ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>This adaptor may rely on the Daffodil open-source implementation of the DFDL specification.</p> Lavoisier - Feature #4867 (New): ScalaProcessorhttps://forge.in2p3.fr/issues/48672013-07-31T17:22:39ZReynaud SylvainSylvain.Reynaud@in2p3.frLavoisier - Feature #4866 (New): XQueryConnectorhttps://forge.in2p3.fr/issues/48662013-07-31T17:21:18ZReynaud SylvainSylvain.Reynaud@in2p3.frLavoisier - Feature #4865 (New): support remote connection in JMXConnectorhttps://forge.in2p3.fr/issues/48652013-07-31T17:19:46ZReynaud SylvainSylvain.Reynaud@in2p3.frLavoisier - Feature #4863 (New): YAMLRendererhttps://forge.in2p3.fr/issues/48632013-07-31T16:51:48ZReynaud SylvainSylvain.Reynaud@in2p3.frAPCScheduler - Feature #3043 (New): option submithttps://forge.in2p3.fr/issues/30432012-08-02T15:47:21ZColley Jean-Marcjcolley@lpnhe.in2p3.fr
<p>Toutes les options ne sont pas dans le jdl mais peuvent être passer en ligne de commande avec le glite-wms-submit-job, notament le nom du CE. Intéressant à conserver ...</p> TReqS - Feature #500 (New): Injecter les information d'opération vers COLLOShttps://forge.in2p3.fr/issues/5002010-03-25T15:27:50ZGomez Casanova Andresandres.gomez@cc.in2p3.fr
<p>Tous les informations de TReqS doivent être injectées dans SYMOD.</p>
<p>Les informations de temps de lecture d'un fichier.<br />Cela inclus le temps de montage (mouvement du bras, montage dans le drive, positionnement et lecture). Traitement complet de la requête.<br />- HPSS + montage.</p>
<p>Pour pouvoir extraire seulement le temps de lecture, cela se fera avec une requête croisé avec l'information de ACSLS dans SYMOD.</p> TReqS - Feature #425 (New): Durée de vie des métadatahttps://forge.in2p3.fr/issues/4252010-02-12T09:16:07ZSchaeffer Jonathanjonathan.schaeffer@cc.in2p3.fr
<p>Ceci est prévu dans le code mais n'est pas implémenté.<br />Actuellement, la durée de vie d'une méta-donnée est nulle.</p>