FYI - I opened a JIRA issue (TAVERNA-893) to address this issue in Taverna 3.
On Thu, Feb 11, 2016 at 10:18 AM Gale Naylor <[email protected]> wrote: > Do we know what caused the "break" to happen in January when everything > was working fine before? > > On Thu, Feb 11, 2016 at 8:30 AM Stian Soiland-Reyes <[email protected]> > wrote: > >> Well, you asked for it! ;) >> >> Maven 3 deploys SNAPSHOTs with timestamps in the filename (e.g. >> 1.0-20150203151700.pom and .jar) and modify maven-metadata.xml to say its >> existence, while earlier Mavens would often (also) deploy the file >> directly >> with just 1.0-SNAPSHOT.jar at the end. Some even earlier Mavens only >> deployed the non-timestamp and didn't update maven-metadata.xml. >> >> To play along, Taverna first tries to retrieve the oldskool path, before >> resorting to parsing the Maven metadata XML. >> >> On this particular server, instead of 404 Not Found for the first, it >> tried >> to be "helpful" with a 300 response and a file listing of similar paths. >> Taverna/Java naively saves this as if it was the pom, and then fails to >> parse it as it is HTML, not XML. >> >> While you could say this is a bug in Taverna 2's plugin system Raven which >> should check for 200 OK before saving the pom/jar, the "real" problem is >> that we implemented Maven repository support ourselves, as (at least at >> the >> time) Maven's codebase did not make it easy to reuse its repository client >> code. >> >> Taverna 3's plugin system uses OSGi instead of Raven/Maven and has a much >> simpler repository structure, but it might be worth hardening our new >> Download code to ensure similar things does not happen there. Released >> Taverna 3 code is in taverna-download-impl of incubator-taverna-osgi. >> On 10 Feb 2016 11:59, "Ian Dunlop" <[email protected]> wrote: >> >> > Hello, >> > >> > Thanks for the detailed analysis Stian. So, I'm trying to understand >> > what the unedrlying issue is (I guess so we can then add it to any docs >> > as things to be aware of). Is it that there is no pom file deployed in >> > the repo. >> > ie taverna is looking for >> > >> > >> > >> http://192.185.115.65/~diana/DIANA_plugin_updated/test-plugins/gr/dianatools/diana.services-activity/1.0-SNAPSHOT/diana.services-activity-1.0-SNAPSHOT.pom >> > >> > but all there is only >> > >> > >> > >> http://192.185.115.65/~diana/DIANA_plugin_updated/test-plugins/gr/dianatools/diana.services-activity/1.0-SNAPSHOT/diana.services-activity-1.0-20150430.173815-1.pom >> > >> > Why would that be? Is it a mvn deploy issue? Why is there no >> > diana.services-activity-1.0-SNAPSHOT.pom ? >> > >> > Cheers, >> > >> > Ian >> > >> > On 10/02/2016 10:02, Stian Soiland-Reyes wrote: >> > > Looking at ~/.taverna-core-2.5.0/taverna-core-2.5.0.log I get >> > > >> > > WARN 2016-02-10 09:40:48,187 >> > > (net.sf.taverna.raven.repository.impl.ArtifactImpl:85) - XML SAX error >> > > for /home/stain/.taverna-core-2.5.0 >> > > >> > >> /repository/gr/dianatools/diana.services-activity/1.0-SNAPSHOT/diana.services-activity-1.0-SNAPSHOT.pom >> > > org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 50; White >> > > spaces are required between publicId and systemId. >> > > at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) >> > > at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown >> > Source) >> > > at >> > javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121) >> > > at >> > >> net.sf.taverna.raven.repository.impl.ArtifactImpl.readAndParseXML(ArtifactImpl.java:560) >> > > at >> > >> net.sf.taverna.raven.repository.impl.ArtifactImpl.readXML(ArtifactImpl.java:526) >> > > at >> > >> net.sf.taverna.raven.repository.impl.ArtifactImpl.getPackageType(ArtifactImpl.java:280) >> > > at >> > >> net.sf.taverna.raven.repository.impl.LocalRepository.act(LocalRepository.java:530) >> > > at >> > >> net.sf.taverna.raven.repository.impl.LocalRepository.update(LocalRepository.java:510) >> > > at >> > >> net.sf.taverna.raven.plugins.PluginManager.addPlugin(PluginManager.java:221) >> > > at >> > >> net.sf.taverna.raven.plugins.ui.PluginSiteFrame$4.run(PluginSiteFrame.java:426) >> > > >> > > and the same for diana-services-activity-ui. >> > > >> > > If I inspect those downloaded POM files locally I see it's no wonder >> > > the XML is not parsing, as I find HTML like: >> > > >> > > <title>300 Multiple Choices</title> >> > > </head><body> >> > > <h1>Multiple Choices</h1> >> > > The document name you requested >> > > >> > >> (<code>/~diana/DIANA_plugin_updated/test-plugins/gr/dianatools/diana.services-activity-ui/1.0-SNAPSHOT/diana.services-activity-ui-1.0-SNAPSHOT.pom</code>) >> > > could not be found on this server. >> > > However, we found documents with names similar to the one you >> > > requested.<p>Available documents: >> > > <ul> >> > > <li><a >> > >> href="/~diana/DIANA_plugin_updated/test-plugins/gr/dianatools/diana.services-activity-ui/1.0-SNAPSHOT/diana.services-activity-ui-1.0-20150430.174001-1.pom.md5">/~diana/DIANA_plugin_updated/test-plugins/gr/dianatools/diana.services-activity-ui/1.0-SNAPSHOT/diana.services-activity-ui-1.0-20150430.174001-1.pom.md5</a> >> > > (common basename) >> > > <li><a >> > >> href="/~diana/DIANA_plugin_updated/test-plugins/gr/dianatools/diana.services-activity-ui/1.0-SNAPSHOT/diana.services-activity-ui-1.0-20150430.174001-1-test-sources.jar.md5">/~diana/DIANA_plugin_updated/test-plugins/gr/dianatools/diana.services-activity-ui/1.0-SNAPSHOT/diana.services-activity-ui-1.0-20150430.174001-1-test-sources.jar.md5</a> >> > > (common basename) >> > > >> > > So this seems to come from Taverna trying to first fetch these URLs: >> > > >> > > >> > >> http://192.185.115.65/~diana/DIANA_plugin_updated/test-plugins/gr/dianatools/diana.services-activity/1.0-SNAPSHOT/diana.services-activity-1.0-SNAPSHOT.pom >> > > >> > >> http://192.185.115.65/~diana/DIANA_plugin_updated/test-plugins/gr/dianatools/diana.services-activity-ui/1.0-SNAPSHOT/diana.services-activity-ui-1.0-SNAPSHOT.pom >> > > >> > > >> > > I don't think Taverna 2's plugin system is handling that 300 response >> > > correctly as it stores the 300 error HTML as if it was the successful >> > > pom downloaded. Taverna would normally try to get the specific >> > > version directly, if a 404 Not Found, it will looking in >> > > maven-metadata.xml to find the latest version >> > > >> > > See >> > >> https://github.com/taverna/taverna2-raven/blob/maintenance/raven/src/main/java/net/sf/taverna/raven/repository/impl/LocalRepository.java#L766 >> > > >> > > >> > > Are you able to reconfigure your Apache server to avoid this "similar >> > > name matching" and return 404 for those non-matching URIs? >> > > >> > > Something like >> > > >> > > CheckSpelling Off >> > > >> > > in .htaccess for /~diana/DIANA_plugin_updated/ should do. >> > > >> > > >> > > Alternatively if you release your plugin in a non-SNAPSHOT version, >> > > then it should also work well. >> > > >> > > BTW - in your repository list at >> > > >> > >> http://192.185.115.65/~diana/DIANA_plugin_updated/test-plugins/diana.services-plugin-1.0-SNAPSHOT.xml >> > > you should remove all repositories except: >> > > >> > > <repository>http://www.mygrid.org.uk/maven/repository/</repository> >> > > <repository> >> > http://192.185.115.65/~diana/DIANA_plugin_updated/test-plugins/ >> > </repository> >> > > >> > > >> > > http://192.185.115.65/~diana/DIANA_plugin_updated should also be >> > > removed as it is one level too high (e.g. >> > > >> > >> http://192.185.115.65/~diana/DIANA_plugin_updated/gr/dianatools/diana.services-activity-ui >> > > does not exist) - this adds lots of unnecessary requests. >> > > >> > > >> > > You should delete all of ~/.taverna-core-2.5.0/repository (or >> > > equivalent) to force re-download, and delete >> > > ~/.taverna-core-2.5.0/plugins to install the plugin from fresh. >> > > >> > > On 10 February 2016 at 09:16, Alan Williams <[email protected] >> > >> > wrote: >> > >> >> > >> >> > >> >> > >> -------- Forwarded Message -------- >> > >> Subject: Re: Problem on Taverna Plugin Installation >> > >> Date: Tue, 09 Feb 2016 21:46:13 +0200 >> > >> From: PARASKEVOPOULOU MARIA <[email protected]> >> > >> To: alaninmcr <[email protected]> >> > >> >> > >> Hi Ian, >> > >> >> > >> For Taverna v2.5. in order to install the plugin, the following >> plugin >> > >> site should be added : >> > >> http://192.185.115.65/~diana/DIANA_plugin_updated/test-plugins/. You >> > >> can also see the relevant information on our site >> > >> >> > >> http://diana.imis.athena-innovation.gr/DianaTools/index.php?r=site/help&topic=taverna >> > . >> > >> >> > >> Thank you in advance for your support. >> > >> >> > >> Best regards, >> > >> Maria >> > >> >> > >> Quoting alaninmcr <[email protected]>: >> > >> >> > >> >> > >>> -------- Forwarded Message -------- >> > >>> Subject: Re: Problem on Taverna Plugin Installation >> > >>> Date: Tue, 9 Feb 2016 13:57:08 +0000 >> > >>> From: Ian Dunlop <[email protected]> >> > >>> Reply-To: [email protected] >> > >>> To: [email protected] >> > >>> >> > >>> Hello, >> > >>> >> > >>> What does the plugins.xml say eg >> > >>> /home/johndoe/.taverna-core-2.5.0/plugins.xml. Maybe taverna can't >> find >> > >>> your server for some reason. >> > >>> >> > >>> Where is your plugin deployed ie the info you put in when adding a >> new >> > >>> plugin site? We could then try and install it and see if we get the >> > same >> > >>> result. >> > >>> >> > >>> Cheers, >> > >>> >> > >>> Ian >> > >>> >> > >>> On 08/02/2016 18:52, PARASKEVOPOULOU MARIA wrote: >> > >>>> >> > >>>> Dear Taverna team, >> > >>>> >> > >>>> We have implemented a Taverna plugin incorporating services and >> > >>>> algorithms implemented in the DIANA LAB (www.microrna.gr). >> > >>>> The plugin initially worked for Taverna 2.3, while several months >> ago >> > we >> > >>>> have updated the plugin and had it functional for both Taverna 2.3 >> and >> > >>>> 2.5 versions. >> > >>>> >> > >>>> However, the last month DIANA users complain that they cannot add >> the >> > >>>> DIANA Taverna plugin in their Taverna workbench. >> > >>>> >> > >>>> The installation has been performed several times in the past with >> > >>>> success. >> > >>>> We uninstalled the plugin from our server and also observed a >> failure >> > in >> > >>>> the reinstallation. >> > >>>> We redeployed the plugin but the error remains. >> > >>>> >> > >>>> The logs produced in Taverna, report a failure in fetching a Pom >> file. >> > >>>> >> > >>>> >> > >>>> "WARN 2015-07-22 19:34:34,036 >> > >>>> (net.sf.taverna.raven.repository.impl.LocalRepository:85) - Could >> not >> > >>>> read com.example:DIANA_Services-activity-ui:1.2-SNAPSHOT from >> > >>>> http://www.mygrid.org.uk/maven/biomoby/biomoby.org/m2repo/ >> > >>>> java.io.IOException: Server returned HTTP response code: 409 for >> URL: >> > >>>> >> > >>>> >> > >> http://repository.mygrid.org.uk/artifactory/biomoby/com/example/DIANA_Services-activity-ui/1.2-SNAPSHOT/DIANA_Services-activity-ui-1.2-SNAPSHOT.pom >> > >>>> >> > >>>> " >> > >>>> We assume that this failure is due to the fact that Taverna is not >> > >>>> trying to install/download the DIANA plugin from our >> server,defined in >> > >>>> the plugin's project pom.xml, but from >> > http://repository.mygrid.org.uk. >> > >>>> >> > >>>> Did something change concerning the format of the project pom.xml >> that >> > >>>> is utilized for the plugin deployment? >> > >>>> Will the error be fixed, if we change the pom.xml? For the the >> pom.xml >> > >>>> design we followed a similar format as in the following pom file >> > >>>> https://github.com/taverna/taverna-prov/blob/master/pom.xml. >> > >>>> >> > >>>> It would be grateful if we could have your feedback on how to >> > >>>> troubleshoot the issue. >> > >>>> >> > >>>> Thank you in advance, >> > >>>> >> > >>>> DIANA Team >> > >>>> >> > >>> >> > >>> -- >> > >>> Ian Dunlop, eScience Lab >> > >>> School of Computer Science >> > >>> The University of Manchester >> > >>> http://orcid.org/0000-0001-7066-3350 >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > > >> > > >> > > >> > >> > -- >> > Ian Dunlop, eScience Lab >> > School of Computer Science >> > The University of Manchester >> > http://orcid.org/0000-0001-7066-3350 >> > >> >
