Using EXPath HTTP client with Saxon

29 views
Skip to first unread message

Winona Salesky

unread,
Oct 22, 2020, 2:30:22 PM10/22/20
to EXPath
Hi All, 
I am trying to get the EXPath HTTP client running with Saxon (SaxonPE9-9-1-7J). I have downloaded the EXPath Packaging module for SAXON and following the instructions in the README installed the EXPath HTTP client module (version 0.11). I installed and ran the sample module to test that I had the packaging module set up correctly and it does work as expected. However I am running into problems when trying to use the EXPath HTTP client module. 


Gives me the error below. Any help would be greatly appreciated. Also, I would be curious to know if anyone is using the EXPath HTTP module with oXygen and if so how you configured oXygen.

Thanks for the help,
-Winona

ERROR: 
Exception in thread "main" java.lang.NoSuchMethodError: net.sf.saxon.event.Builder.startElement(Lnet/sf/saxon/om/NodeName;Lnet/sf/saxon/type/SchemaType;II)V

at org.expath.httpclient.saxon.SaxonTreeBuilder.startElem(SaxonTreeBuilder.java:78)

at org.expath.httpclient.HttpResponse.outputResponseElement(HttpResponse.java:51)

at org.expath.httpclient.saxon.SaxonResult.add(SaxonResult.java:78)

at org.expath.httpclient.impl.HttpRequestImpl.send(HttpRequestImpl.java:69)

at org.expath.saxon.HttpClient.sendOnce(HttpClient.java:140)

at org.expath.saxon.HttpClient.doSendRequest(HttpClient.java:117)

at org.expath.saxon.HttpClient.sendRequest(HttpClient.java:85)

at org.expath.httpclient.saxon.SendRequestCall.call(SendRequestCall.java:50)

at net.sf.saxon.functions.IntegratedFunctionCall.iterate(IntegratedFunctionCall.java:284)

at net.sf.saxon.expr.parser.Evaluator$11.evaluate(Evaluator.java:330)

at net.sf.saxon.expr.LetExpression.eval(LetExpression.java:532)

at net.sf.saxon.expr.LetExpression.process(LetExpression.java:601)

at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:353)

at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:300)

at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:179)

at net.sf.saxon.expr.instruct.NamedTemplate.expand(NamedTemplate.java:243)

at net.sf.saxon.trans.XsltController.callTemplate(XsltController.java:939)

at net.sf.saxon.s9api.Xslt30Transformer.callTemplate(Xslt30Transformer.java:505)

at net.sf.saxon.Transform.processFile(Transform.java:1276)

at net.sf.saxon.Transform.doTransform(Transform.java:815)

at net.sf.saxon.Transform.main(Transform.java:80)

Adam Retter

unread,
Oct 22, 2020, 3:01:02 PM10/22/20
to exp...@googlegroups.com
Hi Winona,

The latest version of the code is now here -
https://github.com/expath/expath-http-client-java/

There are some instructions on that page about how to use it too. Let
me know how you get on...
> --
> You received this message because you are subscribed to the Google Groups "EXPath" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to expath+un...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/expath/fb4e3ea4-e6b9-4997-b34f-05e1de972dbdn%40googlegroups.com.



--
Adam Retter

skype: adam.retter
tweet: adamretter
http://www.adamretter.org.uk

Winona Salesky

unread,
Oct 23, 2020, 1:27:30 PM10/23/20
to exp...@googlegroups.com
Thanks Adam, 
Unfortunately, I am still unable to get this working. I followed the instructions in the readme and also tried using the http-client-saxon/target/http-client-saxon-1.2.5-SNAPSHOT-uber.jar. Mentioned in this issue: https://github.com/expath/expath-http-client-java/issues/13

Here are some notes about my various attempts. 
First try: running the bin/transform.sh in http-client-saxon-1.2.5-SNAPSHOT-dir, As I understand it, this adds all the necessary jars to the classpath for me.

command: 
bin/transform.sh -config:config.xml -s:xslt/test.xml -xsl:xslt/http-test.xsl -o:xslt/output.xml 

error: 
Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: com.saxonica.config.ProfessionalConfiguration
at net.sf.saxon.Configuration.makeLicensedConfiguration(Configuration.java:536)
at net.sf.saxon.trans.ConfigurationReader.startElement(ConfigurationReader.java:219)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:379)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:605)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3138)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:880)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
at net.sf.saxon.trans.ConfigurationReader.makeConfiguration(ConfigurationReader.java:148)
at net.sf.saxon.Configuration.readConfigurationFile(Configuration.java:458)
at net.sf.saxon.Configuration.readConfiguration(Configuration.java:378)
at net.sf.saxon.Transform.doTransform(Transform.java:301)
at net.sf.saxon.Transform.main(Transform.java:82)
Caused by: java.lang.ClassNotFoundException: com.saxonica.config.ProfessionalConfiguration
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at net.sf.saxon.Configuration.instantiateConfiguration(Configuration.java:425)
at net.sf.saxon.Configuration.makeLicensedConfiguration(Configuration.java:534)
... 19 more

Second try: run the transform using the 'uber.jar' with saxon HE, same error as above, so I tried running the 'uber jar' with saxon EE
command: java -cp http-client-saxon-uber.jar:saxon9ee.jar net.sf.saxon.Transform -config:config.xml -s:../xslt/test.xml -xsl:../xslt/http-test.xsl -o:../xslt/test2.xml
error:
Looking for function Q{http://expath.org/ns/http-client}send-request#1
Trying com.saxonica.functions.registry.XSLT30HOFunctionSet
Trying net.sf.saxon.style.StylesheetFunctionLibrary
Trying net.sf.saxon.functions.FunctionLibraryList
Looking for function Q{http://expath.org/ns/http-client}send-request#1
Trying com.saxonica.functions.extfn.VendorFunctionSetPE
Trying net.sf.saxon.functions.MathFunctionSet
Trying net.sf.saxon.ma.map.MapFunctionSet
Trying net.sf.saxon.ma.arrays.ArrayFunctionSet
Trying net.sf.saxon.functions.registry.ExsltCommonFunctionSet
Trying com.saxonica.functions.extfn.EXPathFileFunctionSet
Trying net.sf.saxon.functions.registry.OnDemandFunctionSet
Function Q{http://expath.org/ns/http-client}send-request not found!
Trying net.sf.saxon.functions.registry.ConstructorFunctionLibrary
Trying net.sf.saxon.query.XQueryFunctionLibrary
Trying net.sf.saxon.functions.IntegratedFunctionLibrary
Exception in thread "main" java.lang.NoSuchFieldError: SINGLE_ELEMENT_NODE
at org.expath.httpclient.saxon.SendRequestFunction.getArgumentTypes(SendRequestFunction.java:91)
at net.sf.saxon.functions.IntegratedFunctionCall.checkArguments(IntegratedFunctionCall.java:100)
at net.sf.saxon.expr.FunctionCall.typeCheck(FunctionCall.java:170)
at net.sf.saxon.functions.IntegratedFunctionCall.typeCheck(IntegratedFunctionCall.java:133)
at net.sf.saxon.style.StyleElement.typeCheck(StyleElement.java:1555)
at net.sf.saxon.style.XSLCopyOf.validate(XSLCopyOf.java:116)
at net.sf.saxon.style.StyleElement.validateSubtree(StyleElement.java:1744)
at net.sf.saxon.style.StyleElement.validateChildren(StyleElement.java:1779)
at net.sf.saxon.style.StyleElement.validateSubtree(StyleElement.java:1748)
at net.sf.saxon.style.XSLTemplate.validateSubtree(XSLTemplate.java:595)
at net.sf.saxon.style.PrincipalStylesheetModule.preprocess(PrincipalStylesheetModule.java:404)
at net.sf.saxon.style.Compilation.compilePackage(Compilation.java:287)
at net.sf.saxon.style.StylesheetModule.loadStylesheet(StylesheetModule.java:223)
at net.sf.saxon.style.Compilation.compileSingletonPackage(Compilation.java:107)
at net.sf.saxon.s9api.XsltCompiler.compile(XsltCompiler.java:788)
at net.sf.saxon.Transform.doTransform(Transform.java:741)
at net.sf.saxon.Transform.main(Transform.java:80)

Third try: running the bin/transform.sh in http-client-saxon-1.2.5-SNAPSHOT-dir but change saxon to EE version. (update transform.sh to reflect this change)
error (same as above):

Looking for function Q{http://expath.org/ns/http-client}send-request#1

Trying com.saxonica.functions.registry.XSLT30HOFunctionSet

Trying net.sf.saxon.style.StylesheetFunctionLibrary

Trying net.sf.saxon.functions.FunctionLibraryList

Looking for function Q{http://expath.org/ns/http-client}send-request#1

Trying com.saxonica.functions.extfn.VendorFunctionSetPE

Trying net.sf.saxon.functions.MathFunctionSet

Trying net.sf.saxon.ma.map.MapFunctionSet

Trying net.sf.saxon.ma.arrays.ArrayFunctionSet

Trying net.sf.saxon.functions.registry.ExsltCommonFunctionSet

Trying com.saxonica.functions.extfn.EXPathFileFunctionSet

Trying net.sf.saxon.functions.registry.OnDemandFunctionSet

Function Q{http://expath.org/ns/http-client}send-request not found!

Trying net.sf.saxon.functions.registry.ConstructorFunctionLibrary

Trying net.sf.saxon.query.XQueryFunctionLibrary

Trying net.sf.saxon.functions.IntegratedFunctionLibrary

Exception in thread "main" java.lang.NoSuchFieldError: SINGLE_ELEMENT_NODE

at org.expath.httpclient.saxon.SendRequestFunction.getArgumentTypes(SendRequestFunction.java:91)

at net.sf.saxon.functions.IntegratedFunctionCall.checkArguments(IntegratedFunctionCall.java:100)

at net.sf.saxon.expr.FunctionCall.typeCheck(FunctionCall.java:170)

at net.sf.saxon.functions.IntegratedFunctionCall.typeCheck(IntegratedFunctionCall.java:133)

at net.sf.saxon.style.StyleElement.typeCheck(StyleElement.java:1555)

at net.sf.saxon.style.XSLCopyOf.validate(XSLCopyOf.java:116)

at net.sf.saxon.style.StyleElement.validateSubtree(StyleElement.java:1744)

at net.sf.saxon.style.StyleElement.validateChildren(StyleElement.java:1779)

at net.sf.saxon.style.StyleElement.validateSubtree(StyleElement.java:1748)

at net.sf.saxon.style.XSLTemplate.validateSubtree(XSLTemplate.java:595)

at net.sf.saxon.style.PrincipalStylesheetModule.preprocess(PrincipalStylesheetModule.java:404)

at net.sf.saxon.style.Compilation.compilePackage(Compilation.java:287)

at net.sf.saxon.style.StylesheetModule.loadStylesheet(StylesheetModule.java:223)

at net.sf.saxon.style.Compilation.compileSingletonPackage(Compilation.java:107)

at net.sf.saxon.s9api.XsltCompiler.compile(XsltCompiler.java:788)

at net.sf.saxon.Transform.doTransform(Transform.java:741)

at net.sf.saxon.Transform.main(Transform.java:80)


I also tried running this in oXygen by adding the http-client-saxon/target/http-client-saxon-1.2.5-SNAPSHOT-uber.jar and the config.xml file and running Saxon EE. I received this error:
error:
java.lang.NoSuchFieldError: SINGLE_ELEMENT_NODE
at org.expath.httpclient.saxon.SendRequestFunction.getArgumentTypes(SendRequestFunction.java:91)
at net.sf.saxon.functions.IntegratedFunctionCall.checkArguments(IntegratedFunctionCall.java:98)
at net.sf.saxon.expr.FunctionCall.typeCheck(FunctionCall.java:174)
at net.sf.saxon.functions.IntegratedFunctionCall.typeCheck(IntegratedFunctionCall.java:131)
at net.sf.saxon.style.StyleElement.typeCheck(StyleElement.java:1576)
at net.sf.saxon.style.XSLCopyOf.validate(XSLCopyOf.java:116)
at net.sf.saxon.style.StyleElement.validateSubtree(StyleElement.java:1771)
at net.sf.saxon.style.StyleElement.validateChildren(StyleElement.java:1806)
at net.sf.saxon.style.StyleElement.validateSubtree(StyleElement.java:1775)
at net.sf.saxon.style.XSLTemplate.validateSubtree(XSLTemplate.java:593)
at net.sf.saxon.style.PrincipalStylesheetModule.preprocess(PrincipalStylesheetModule.java:429)
at net.sf.saxon.style.Compilation.compilePackage(Compilation.java:288)
at net.sf.saxon.style.StylesheetModule.loadStylesheet(StylesheetModule.java:258)
at net.sf.saxon.style.Compilation.compileSingletonPackage(Compilation.java:106)
at net.sf.saxon.s9api.XsltCompiler.compile(XsltCompiler.java:739)
at net.sf.saxon.jaxp.SaxonTransformerFactory.newTemplates(SaxonTransformerFactory.java:186)
at net.sf.saxon.jaxp.SaxonTransformerFactory.newTransformer(SaxonTransformerFactory.java:142)
at ro.sync.xml.transformer.c.r(Unknown Source)
at ro.sync.xml.transformer.c.y(Unknown Source)
at ro.sync.xml.transformer.c.j(Unknown Source)
at ro.sync.xml.transformer.c.ub(Unknown Source)
at ro.sync.xml.transformer.c.jb(Unknown Source)
at ro.sync.exml.editor.xmleditor.gc.guk(Unknown Source)
at ro.sync.exml.editor.xmleditor.gc.etk(Unknown Source)
at ro.sync.exml.editor.xmleditor.gc$4.dxd(Unknown Source)
at ro.sync.ui.application.mb.run(Unknown Source)

Thanks for the help!
-Winona


You received this message because you are subscribed to a topic in the Google Groups "EXPath" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/expath/cWmpI-oTig8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to expath+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/expath/CAPK0ichc0%2BfRzLn8cyt-1cH57_qfaQvvm4y0bAsXgnT6SiLodg%40mail.gmail.com.

Adam Retter

unread,
Oct 24, 2020, 8:36:20 AM10/24/20
to exp...@googlegroups.com
> Here are some notes about my various attempts.
> First try: running the bin/transform.sh in http-client-saxon-1.2.5-SNAPSHOT-dir, As I understand it, this adds all the necessary jars to the classpath for me.
>
> command:
> bin/transform.sh -config:config.xml -s:xslt/test.xml -xsl:xslt/http-test.xsl -o:xslt/output.xml
>
> error:
> Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: com.saxonica.config.ProfessionalConfiguration
> at net.sf.saxon.Configuration.makeLicensedConfiguration(Configuration.java:536)
> at net.sf.saxon.trans.ConfigurationReader.startElement(ConfigurationReader.java:219)

I am not sure why you were seeing that error. Was your config.xml file
the same as the one I detailed?

To try and solve this, I have now added complete examples to the
code-base, you can see them in the http-client-saxon/examples folder.
In addition when you now run `mvn clean package` you will find some
new scripts in `http-client-saxon/target/http-client-saxon-1.2.5-SNAPSHOT-dir/bin`
which will execute the examples.

Can you run example1-transform.sh and example1-query.sh and let me
know if they don't work for you? (there are .bat versions if you are
on Windows, but I haven't tested those directly).


> Second try: run the transform using the 'uber.jar' with saxon HE, same error as above, so I tried running the 'uber jar' with saxon EE
> command: java -cp http-client-saxon-uber.jar:saxon9ee.jar net.sf.saxon.Transform -config:config.xml -s:../xslt/test.xml -xsl:../xslt/http-test.xsl -o:../xslt/test2.xml
> error:
> Looking for function Q{http://expath.org/ns/http-client}send-request#1
> Trying com.saxonica.functions.registry.XSLT30HOFunctionSet
> Trying net.sf.saxon.style.StylesheetFunctionLibrary
> Trying net.sf.saxon.functions.FunctionLibraryList
> Looking for function Q{http://expath.org/ns/http-client}send-request#1
> Trying com.saxonica.functions.extfn.VendorFunctionSetPE
> Trying net.sf.saxon.functions.MathFunctionSet
> Trying net.sf.saxon.ma.map.MapFunctionSet
> Trying net.sf.saxon.ma.arrays.ArrayFunctionSet
> Trying net.sf.saxon.functions.registry.ExsltCommonFunctionSet
> Trying com.saxonica.functions.extfn.EXPathFileFunctionSet
> Trying net.sf.saxon.functions.registry.OnDemandFunctionSet
> Function Q{http://expath.org/ns/http-client}send-request not found!
> Trying net.sf.saxon.functions.registry.ConstructorFunctionLibrary
> Trying net.sf.saxon.query.XQueryFunctionLibrary
> Trying net.sf.saxon.functions.IntegratedFunctionLibrary
> Exception in thread "main" java.lang.NoSuchFieldError: SINGLE_ELEMENT_NODE
> at org.expath.httpclient.saxon.SendRequestFunction.getArgumentTypes(SendRequestFunction.java:91)
> at net.sf.saxon.functions.IntegratedFunctionCall.checkArguments(IntegratedFunctionCall.java:100)
> at net.sf.saxon.expr.FunctionCall.typeCheck(FunctionCall.java:170)
> at net.sf.saxon.functions.IntegratedFunctionCall.typeCheck(IntegratedFunctionCall.java:133)

Okay - this looks like an API match between the version of the Saxon
used by the EXPath HTTP Client, and the version you are using.

For the EXPath HTTP Client, this was previously - 9.7.0-15, I have now
updated this to support Saxon 9.9.1-7.
The new release of the EXPath HTTP Client is version 1.3.0 - it should
also appear shortly on Maven Central (if you use that).

Please let me know if that fixes your issue or not?


>
> Third try: running the bin/transform.sh in http-client-saxon-1.2.5-SNAPSHOT-dir but change saxon to EE version. (update transform.sh to reflect this change)
> error (same as above):

> Exception in thread "main" java.lang.NoSuchFieldError: SINGLE_ELEMENT_NODE
>
> at org.expath.httpclient.saxon.SendRequestFunction.getArgumentTypes(SendRequestFunction.java:91)
>
> at net.sf.saxon.functions.IntegratedFunctionCall.checkArguments(IntegratedFunctionCall.java:100)
>
> at net.sf.saxon.expr.FunctionCall.typeCheck(FunctionCall.java:170)

I think this is the same version mismatch problem as above.


> I also tried running this in oXygen by adding the http-client-saxon/target/http-client-saxon-1.2.5-SNAPSHOT-uber.jar and the config.xml file and running Saxon EE. I received this error:
> error:
> java.lang.NoSuchFieldError: SINGLE_ELEMENT_NODE
> at org.expath.httpclient.saxon.SendRequestFunction.getArgumentTypes(SendRequestFunction.java:91)
> at net.sf.saxon.functions.IntegratedFunctionCall.checkArguments(IntegratedFunctionCall.java:98)

Likewise, I think this is also the same version mismatch problem as above.


Hopefully the new version fixes the issue for you (assuming you are
using Saxon 9.9.1-7).

Winona Salesky

unread,
Oct 26, 2020, 5:46:24 PM10/26/20
to exp...@googlegroups.com
Hi Adam, 
The new build did solve the problem running on the command line. I'm still getting the same error in oXygen, which for me is running Saxon HE 9.8.0.12. Does this mean the the EXPath HTTP Client Module is tied to a particular version of Saxon? If so what is the potential for updates? Also, if the code is tied to specific version of Saxon, it would be helpful to note in the github documentation. I am considering using this with an xslt which has the potential to be widely distributed and I will need to be able to provide very clear, very easy to follow steps for working with the extension as a large portion of my potential user base will may have little to no experience using Saxon outside of oXygen. The 'uber' jar is great as are the example files and the readme here: https://github.com/expath/expath-http-client-java/blob/master/http-client-saxon/README.md

Thank you for all your help, I really appreciate it. 
-Winona





--
You received this message because you are subscribed to a topic in the Google Groups "EXPath" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/expath/cWmpI-oTig8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to expath+un...@googlegroups.com.

Øyvind Gjesdal

unread,
Oct 27, 2020, 9:44:27 AM10/27/20
to EXPath
 
Hi Winona and Adam,
 
Very nice to see the expath http client updated for newer Saxon and simplifying how to run it from Oxygen.
 
I've tried it out in Oxygen 22.1 (Tested EE and Saxon HE 9.9.1.7) and the example transform works there successfully.
 
Setting it up in Oxygen was two steps
* Adding uber jar to "extensions" in transform scenario
* Add the configuration file in "Transformer" -advanced options menu
 
I used/pointed to the configuration in examples/example1/config.xml.
 
Kind regards,
Øyvind

Adam Retter

unread,
Oct 28, 2020, 5:38:27 AM10/28/20
to exp...@googlegroups.com
> The new build did solve the problem running on the command line.

Excellent.

> I'm still getting the same error in oXygen, which for me is running Saxon HE 9.8.0.12. Does this mean the the EXPath HTTP Client Module is tied to a particular version of Saxon?

I am afraid so. As the module is a Saxon extension, so it has to be
updated if the Saxon API changes.

> If so what is the potential for updates?

I have tried to keep it updated where I can.

> Also, if the code is tied to specific version of Saxon, it would be helpful to note in the github documentation.

That's true. We could also maybe number the releases with the Saxon
version in the same way that Calabash does. Would you be able to send
a Pull Request to update the README.md files?


> Thank you for all your help, I really appreciate it.

You're welcome :-)

Winona Salesky

unread,
Oct 28, 2020, 7:01:52 PM10/28/20
to exp...@googlegroups.com
Thanks Adam, 
I will be happy to submit a pull request with an update to the readme. Also, I think numbering the release with the Saxon version number would be very helpful.
-Winona


--
You received this message because you are subscribed to the Google Groups "EXPath" group.
To unsubscribe from this group and stop receiving emails from it, send an email to expath+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/expath/CAPK0icgovNLPz6ZF6NEM_T1anFFudncYftbySc1vd3aaKv3RWw%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages