[ 
https://jira.duraspace.org/browse/DS-1234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=28307#comment-28307
 ] 

Fal Con commented on DS-1234:
-----------------------------

It look"s like it doesn't work on 3.1. In 
./dspace-xmlui/src/main/resources/aspects/XMLWorkflow/xmlworkflow.js, 
doEditItemMetadata(), poolTaskList.isEmpty() is true and 
ClaimedTask.findByWorkflowIdAndEPerson(getDSContext(), xmlWorkflowItem.getID(), 
getDSContext().getCurrentUser().getID()); gives null.

Log, cocoon:

2013-06-07 14:02:29,463 INFO  org.apache.cocoon.caching.impl.CacheImpl  - 
Caching new response for 
PK_G-aspect-cocoon://DRI/10/handle/123456789/39?pipelinehash=-3983196624749804755_T-Navigation--2395238436367731836
2013-06-07 14:02:29,467 INFO  cocoon.access  - 'handle/123456789/39' Processed 
by Apache Cocoon in 200 milliseconds.
2013-06-07 14:02:30,130 INFO  
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor$TreeProcessorRedirector
  - Redirecting to '/xmlui/handle/123456789/39'
2013-06-07 14:02:30,173 INFO  org.apache.cocoon.caching.impl.CacheImpl  - Cache 
MISS for 
PK_G-aspect-cocoon://DRI/1/handle/123456789/39/edit_item_metadata_T-PageNotFound-1725611404935763052
2013-06-07 14:02:30,188 INFO  org.apache.cocoon.caching.impl.CacheImpl  - Cache 
MISS for 
PK_G-file-cocoon://DRI/handle/123456789/39/edit_item_metadata_T-IncludePageMeta--5534495057400678945_T-IncludePageMeta-7145676799531262490_T-IncludePageMeta-7904007307692048974_T-xslt-jndi:/localhost/xmlui/themes/Mirage/Mirage.xsl_T-i18n-context://i18n/?nl___S-xhtml-;doctype-public=-//W3C//DTD
 XHTML 1.0 
Strict//EN;doctype-system=http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd;encoding=UTF-8;indent=yes
2013-06-07 14:02:30,190 ERROR cocoon.handled  - Attempted to process incomplete 
pipeline.
        at <map:serialize type="xml"> - 
jndi:/localhost/xmlui/aspects/aspects.xmap:85:34
        at <map:transform type="PageNotFound"> - 
jndi:/localhost/xmlui/aspects/aspects.xmap:84:43
        at <map:generate> - jndi:/localhost/xmlui/aspects/aspects.xmap:83:22
        at <map:serialize type="xhtml"> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:164:34
        at <map:transform type="i18n"> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:158:33
        at <map:transform> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:153:51
        at <map:transform type="IncludePageMeta"> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:140:55
        at <map:transform type="IncludePageMeta"> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:135:55
        at <map:transform type="IncludePageMeta"> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:126:55
        at <map:generate type="file"> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:120:55
        at <map:match> - jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:117:28
        at <map:mount> - jndi:/localhost/xmlui/themes/themes.xmap:33:45
        at <map:match type="ThemeMatcher"> - 
jndi:/localhost/xmlui/themes/themes.xmap:32:35
        at <map:mount> - jndi:/localhost/xmlui/sitemap.xmap:684:94
org.apache.cocoon.ProcessingException: Attempted to process incomplete pipeline.
        at <map:serialize type="xml"> - 
jndi:/localhost/xmlui/aspects/aspects.xmap:85:34
        at <map:transform type="PageNotFound"> - 
jndi:/localhost/xmlui/aspects/aspects.xmap:84:43
        at <map:generate> - jndi:/localhost/xmlui/aspects/aspects.xmap:83:22
        at <map:serialize type="xhtml"> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:164:34
        at <map:transform type="i18n"> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:158:33
        at <map:transform> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:153:51
        at <map:transform type="IncludePageMeta"> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:140:55
        at <map:transform type="IncludePageMeta"> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:135:55
        at <map:transform type="IncludePageMeta"> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:126:55
        at <map:generate type="file"> - 
jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:120:55
        at <map:match> - jndi:/localhost/xmlui/themes/Mirage/sitemap.xmap:117:28
        at <map:mount> - jndi:/localhost/xmlui/themes/themes.xmap:33:45
        at <map:match type="ThemeMatcher"> - 
jndi:/localhost/xmlui/themes/themes.xmap:32:35
        at <map:mount> - jndi:/localhost/xmlui/sitemap.xmap:684:94
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:456)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:480)
        at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
        at com.sun.proxy.$Proxy24.prepareInternal(Unknown Source)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:292)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:148)
        at 
org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:62)
        at 
org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:153)
        at 
org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:183)
        at 
org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:99)
        at 
org.dspace.app.xmlui.cocoon.AspectGenerator.setup(AspectGenerator.java:81)
        at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
        at com.sun.proxy.$Proxy25.setup(Unknown Source)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:343)
        at 
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:710)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:480)
        at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
        at com.sun.proxy.$Proxy24.prepareInternal(Unknown Source)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:292)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:148)
        at 
org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:62)
        at 
org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:153)
        at 
org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:183)
        at 
org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:99)
        at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
        at com.sun.proxy.$Proxy25.setup(Unknown Source)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:343)
        at 
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:710)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:411)
        at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
        at com.sun.proxy.$Proxy24.process(Unknown Source)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)
        at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)
        at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)
        at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
        at 
org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:351)
        at 
org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169)
        at 
org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)
        at 
org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)
        at 
org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        at com.sun.proxy.$Proxy21.service(Unknown Source)
        at org.dspace.springmvc.CocoonView.render(CocoonView.java:113)
        at 
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
        at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
        at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
        at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
        at 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.dspace.app.xmlui.cocoon.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.dspace.app.xmlui.cocoon.DSpaceCocoonServletFilter.doFilter(DSpaceCocoonServletFilter.java:269)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.dspace.app.xmlui.cocoon.servlet.multipart.DSpaceMultipartFilter.doFilter(DSpaceMultipartFilter.java:119)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.dspace.utils.servlet.DSpaceWebappServletFilter.doFilter(DSpaceWebappServletFilter.java:78)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:722)
2013-06-07 14:02:30,192 INFO  
org.apache.cocoon.components.treeprocessor.sitemap.HandleErrorsNode  - 
Processing handle-errors at <map:handle-errors> - 
jndi:/localhost/xmlui/sitemap.xmap:688:36
2013-06-07 14:02:30,203 INFO  cocoon.access  - 
'handle/123456789/39/edit_item_metadata' Processed by Apache Cocoon in 134 
milliseconds.
2013-06-07 14:02:30,269 INFO  org.apache.cocoon.caching.impl.CacheImpl  - Cache 
HIT for PK_G-file-jndi:/localhost/xmlui/aspects/protodocument.xml
2013-06-07 14:02:30,269 INFO  org.apache.cocoon.caching.impl.CacheImpl  - Cache 
HIT for 
PK_G-aspect-cocoon://DRI/10/handle/123456789/39?pipelinehash=-3983196624749804755_T-Navigation--2395238436367731836

DSpace log:

2013-06-07 14:02:30,251 INFO  org.dspace.usage.LoggerUsageEventListener @ 
administrator@local:session_id=7616AEDA34AED45061B96A9430CAA8BC:ip_addr=192.168.7.20:view_item:handle=123456789/39
2013-06-07 14:02:35,393 INFO  org.dspace.usage.LoggerUsageEventListener @ 
administrator@local:session_id=7616AEDA34AED45061B96A9430CAA8BC:ip_addr=192.168.7.20:view_item:handle=123456789/39
2013-06-07 14:02:38,735 INFO  
org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem @ 
administrator@local:session_id=7616AEDA34AED45061B96A9430CAA8BC:ip_addr=192.168.7.20:update_workflow_item:workflowitem_id=128
2013-06-07 14:02:38,737 INFO  org.dspace.content.Item @ 
administrator@local:session_id=7616AEDA34AED45061B96A9430CAA8BC:ip_addr=192.168.7.20:update_item:item_id=37
2013-06-07 14:02:38,759 INFO  org.dspace.xmlworkflow.XmlWorkflowManager @ 
administrator@local:session_id=7616AEDA34AED45061B96A9430CAA8BC:ip_addr=192.168.7.20:archive_item:workflow_item_id=128item_id=37collection_id=4
2013-06-07 14:02:38,762 INFO  org.dspace.content.Item @ 
administrator@local:session_id=7616AEDA34AED45061B96A9430CAA8BC:ip_addr=192.168.7.20:update_item:item_id=37
2013-06-07 14:02:38,765 INFO  org.dspace.xmlworkflow.XmlWorkflowManager @ No 
next step, archiving.
2013-06-07 14:02:38,766 INFO  org.dspace.xmlworkflow.XmlWorkflowManager @ In 
end of function.
2013-06-07 14:02:38,773 INFO  org.dspace.search.DSIndexer @ Writing Item: 
123456789/39 to Index
2013-06-07 14:02:38,775 INFO  org.dspace.search.DSIndexer @ Wrote Item: 
123456789/39 to Index
2013-06-07 14:02:38,896 INFO  org.dspace.usage.LoggerUsageEventListener @ 
administrator@local:session_id=7616AEDA34AED45061B96A9430CAA8BC:ip_addr=192.168.7.20:view_item:handle=123456789/39

Thanks
                
> Edit an Item using the workflow process
> ---------------------------------------
>
>                 Key: DS-1234
>                 URL: https://jira.duraspace.org/browse/DS-1234
>             Project: DSpace
>          Issue Type: Improvement
>          Components: DSpace API, XMLUI
>    Affects Versions: 1.8.2, 3.0
>            Reporter: Nestor Oviedo
>              Labels: Edit, XMLUI, XmlWorkflow, has-patch
>         Attachments: workflow_edit_modified_classes.zip, workflow_edit.patch
>
>
> Currently, the only way to edit an item metadata is through the "Admin Item" 
> section, where a list of all metadata is displayed using textarea elements. 
> Here there are no constraint checking or help (by hints) or logical metadata 
> organization. It is just a list o textarea elements labeled whith the 
> respective metadata name.
> This patch allows a user to edit an item by re-inserting it in the workflow 
> process, as if it was a new submission.
> It is important to note that this patch modifies the XmlWorkflow aspect, 
> which means that this function will be available only for those who have this 
> aspect enabled.
> How does it work?
> Navigation class was modified and now, when an Item is shown, there is 
> another context menu item which points to 
> "handle/xxxx/yyy/edit_item_metadata", only when the user can edit that item.
> That URL is handled by the XmlWorkflow's sitemap.xmap (that was modified to 
> add the corresponding match component), which invokes the flowscript function 
> added to the xmlworkflow.js (also modified to add this function).
> This flow function invokes some validation functions (added to 
> XmlWorkflowManager class) and then starts the workflow. This means the 
> XmlWorkflowItem wrapper is created and the workflow's first step is activated.
> Also, the XmlWorkflowManager's archive() method was modified to decide if the 
> "item to archive" is a new submission or an edited item.
> So far, we haven't decided how to manage the un-publish and re-publish tasks 
> when the item enters and leaves the workflow. An option could be use the 
> "in_archive" flag.  This means that when the item enters the workflow for 
> edition it remains published.
> Also, this modifications might need some addiontional testing.
> Attached you will find the patch file, and a zip file containing the modified 
> files (classes, sitemaps, flowscripts, etc), organized by module.
> We would be glad to hear your comments about this patch.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
Dspace-devel mailing list
Dspace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to