taverna-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stian Soiland-Reyes <st...@apache.org>
Subject Re: Problem on Taverna Plugin Installation
Date Thu, 11 Feb 2016 16:30:11 GMT
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" <ian.dunlop@manchester.ac.uk> 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 <alaninmcr@googlemail.com>
> wrote:
> >>
> >>
> >>
> >> -------- Forwarded Message --------
> >> Subject: Re: Problem on Taverna Plugin Installation
> >> Date: Tue, 09 Feb 2016 21:46:13 +0200
> >> From: PARASKEVOPOULOU MARIA <mparaskevopoulou@uth.gr>
> >> To: alaninmcr <alaninmcr@googlemail.com>
> >>
> >> 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 <alaninmcr@googlemail.com>:
> >>
> >>
> >>> -------- Forwarded Message --------
> >>> Subject: Re: Problem on Taverna Plugin Installation
> >>> Date: Tue, 9 Feb 2016 13:57:08 +0000
> >>> From: Ian Dunlop <ian.dunlop@manchester.ac.uk>
> >>> Reply-To: dev@taverna.incubator.apache.org
> >>> To: dev@taverna.incubator.apache.org
> >>>
> >>> 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
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message