Merge branch 'master' into paz-927
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 30 Oct 2014 11:57:38 +0000 (12:57 +0100)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 30 Oct 2014 11:57:38 +0000 (12:57 +0100)
Conflicts:
src/client.c
src/connection.c
src/connection.h

22 files changed:
IDMETA
NEWS
doc/pazpar2_protocol.xml
etc/xsl/cf.xsl
etc/xsl/primo-pz2.xsl
etc/xsl/primo-pz21.res.xml [new file with mode: 0644]
etc/xsl/primo-pz21.xml [new file with mode: 0644]
etc/xsl/tmarc.xsl
js/pz2.js
src/client.c
src/client.h
src/connection.c
src/connection.h
src/http_command.c
src/session.c
src/session.h
test/Makefile.am
test/run_pazpar2.sh
test/test_perf.sh
test/xslt/cf-output.REGRESSION [deleted file]
test/xslt/sample-cf-record.xml [deleted file]
win/makefile

diff --git a/IDMETA b/IDMETA
index 18a9ce1..b9a55d7 100644 (file)
--- a/IDMETA
+++ b/IDMETA
@@ -1,4 +1,4 @@
 DEBIAN_DIST="jessie wheezy squeeze"
-UBUNTU_DIST="trusty precise"
+UBUNTU_DIST="utopic trusty saucy precise"
 CENTOS_DIST="centos5 centos6"
-VERSION=1.7.5
+VERSION=1.8.2
diff --git a/NEWS b/NEWS
index 47437f5..f79a617 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,36 @@
+--- 1.8.2 2014/10/30
+
+Add Ubuntu utopic 14.04 and Ubuntu saucy 13.10 to the list of packages
+built. 
+
+Remove from js/pz2.js the code that translates just two diagnostic
+codes (1 and 2) into human-readable messages. This is no longer
+necessary at all, as PazPar2 has been returning the message as well as
+the code in its responses since December 2012. Fixes PAZ-978.
+
+primo xsl produces citation rather than journal-subpart PAZ-972
+(fix in 1.8.1 was incorrect)
+
+Fix missing .url files PAZ-977
+Add missing .url+.cfg and add proper check for it.
+
+--- 1.8.1 2014/10/10
+
+Turbomarc needs number check for date 903 map PAZ-973
+
+primo-pz2.xsl creates citation rather than journal-subpart PAZ-972
+
+pz2.js: on successful search, issue a "show" command only if a show
+callback function has been installed. Fixes part of PAZ-975
+
+--- 1.8.0 2014/09/30
+
+New command=stop which stops further search&retrieval for active
+databases.
+
+CF/primo XSL generates {volume,issue,pages}-number that are defined
+in default Pazpar2 service definition. PAZ-968 PAZ-970
+
 --- 1.7.5 2014/09/11
 
 Various fixes for threaded operation PAZ-960 thru PAZ-966
index 12ad723..7540224 100644 (file)
@@ -706,6 +706,13 @@ search.pz2?session=605047297&command=record&id=3
    </para>
   </refsect2>
 
+  <refsect2 id="command-stop">
+   <title>stop</title>
+   <para>
+    Makes Pazpar2 stop further search &amp; retrieval for busy databases.
+   </para>
+  </refsect2>
+
   <refsect2 id="command-termlist">
    <title>termlist</title>
    <para>
index 61edc04..5f0c4ea 100644 (file)
       <xsl:value-of select="."/>
     </pz:metadata>
   </xsl:template>
-  
-  <!-- no-op template to avoid printing medium out --> 
+
+  <!-- no-op template to avoid printing medium out -->
   <xsl:template match="medium" />
 
+  <xsl:template match="volume">
+    <pz:metadata type="volume-number">
+      <xsl:value-of select="."/>
+    </pz:metadata>
+  </xsl:template>
+
+  <xsl:template match="issue">
+    <pz:metadata type="issue-number">
+      <xsl:value-of select="."/>
+    </pz:metadata>
+  </xsl:template>
+
+  <!-- put both page and pages-number for page -->
+  <xsl:template match="page">
+    <pz:metadata type="pages-number">
+      <xsl:value-of select="."/>
+    </pz:metadata>
+    <pz:metadata type="page">
+      <xsl:value-of select="."/>
+    </pz:metadata>
+  </xsl:template>
+  <!-- leave endpage as is -->
+
   <xsl:template match="*" >
     <pz:metadata type="{local-name()}">
       <xsl:value-of select="."/>
index 9617374..aebdaaa 100644 (file)
@@ -1,17 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0"
-  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
   xmlns:tmarc="http://www.indexdata.com/turbomarc"
-  xmlns:prim="http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib" 
+  xmlns:prim="http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib"
   xmlns:sear="http://www.exlibrisgroup.com/xsd/jaguar/search"
->
-
+  >
   <xsl:output indent="yes" method="xml" version="1.0"
     encoding="UTF-8" />
-
   <xsl:template name="record-hook" />
-
   <xsl:variable name="type" select="/opt/prim:PrimoNMBib/prim:display/prim:type"/>
   <xsl:variable name="is_article" select="$type = 'article'" />
   <xsl:variable name="fulltext" select="/opt/prim:PrimoNMBib/prim:delivery/prim:fulltext"/>
@@ -48,8 +45,8 @@
   <xsl:template match="prim:PrimoNMBib">
     <xsl:apply-templates />
   </xsl:template>
-  
-  <xsl:template match="prim:control"> 
+
+  <xsl:template match="prim:control">
     <xsl:for-each select="prim:recordid">
       <pz:metadata type="id">
        <xsl:value-of select="."/>
     </xsl:for-each>
 
     <xsl:for-each select="prim:volume">
-      <pz:metadata type="volume">
+      <pz:metadata type="volume-number">
        <xsl:value-of select="." />
       </pz:metadata>
     </xsl:for-each>
 
     <xsl:for-each select="prim:issue">
-      <pz:metadata type="issue">
+      <pz:metadata type="issue-number">
        <xsl:value-of select="." />
       </pz:metadata>
     </xsl:for-each>
 
     <xsl:for-each select="prim:spage">
-      <pz:metadata type="page">
+      <pz:metadata type="pages-number">
         <xsl:value-of select="." />
       </pz:metadata>
     </xsl:for-each>
     </xsl:for-each>
   </xsl:template>
 
-  <xsl:template match="prim:delivery">  
-
+  <xsl:template match="prim:delivery">
     <xsl:if test="$has_fulltext">
       <pz:metadata type="has-fulltext">
         <xsl:value-of select="$has_fulltext" />
       </pz:metadata>
     </xsl:if>
-
   </xsl:template>
 
   <xsl:template match="prim:display">
-
-<!--
-    <xsl:for-each select="prim:creator">
-       <pz:metadata type="author">
-        <xsl:value-of select="." />
-      </pz:metadata>
-    </xsl:for-each>
--->
     <xsl:for-each select="prim:type">
       <xsl:variable name="type" select="."/>
       <pz:metadata type="medium">
             <xsl:value-of select="$type"/>
           </xsl:otherwise>
        </xsl:choose>
-<!--        <xsl:value-of select="$type" /> -->
       </pz:metadata>
       <pz:metadata type="debug_isarticle"><xsl:value-of select="$is_article"/></pz:metadata>
-    </xsl:for-each>  
+    </xsl:for-each>
 
     <xsl:for-each select="prim:title">
       <pz:metadata type="title">
        <xsl:value-of select="." />
       </pz:metadata>
-    </xsl:for-each>  
+    </xsl:for-each>
 
     <xsl:for-each select="prim:ispartof">
-      <pz:metadata type="journal-subpart">
+      <pz:metadata type="citation">
        <xsl:value-of select="." />
       </pz:metadata>
     </xsl:for-each>
-<!--
-    <xsl:apply-templates />
--->
   </xsl:template>
 
   <xsl:template match="prim:facets">
        <pz:metadata type="subject">
         <xsl:value-of select="." />
       </pz:metadata>
-    </xsl:for-each>  
+    </xsl:for-each>
   </xsl:template>
 
   <xsl:template match="sear:LINKS" >
-    <xsl:for-each select="sear:openurl"> 
+    <xsl:for-each select="sear:openurl">
       <pz:metadata type="electronic-url">
        <xsl:value-of select="."/>
       </pz:metadata>
     </xsl:for-each>
     <!-- other stylesheets importing this might want to define this -->
 
-    <xsl:call-template name="record-hook" />   
+    <xsl:call-template name="record-hook" />
   </xsl:template>
 
   <xsl:template match="text()" />
diff --git a/etc/xsl/primo-pz21.res.xml b/etc/xsl/primo-pz21.res.xml
new file mode 100644 (file)
index 0000000..224dbbe
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<pz:record xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc" xmlns:prim="http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib" xmlns:sear="http://www.exlibrisgroup.com/xsd/jaguar/search">
+  <pz:metadata type="id">TN_medline21455132</pz:metadata>
+  <pz:metadata type="medium">article</pz:metadata>
+  <pz:metadata type="debug_isarticle">false</pz:metadata>
+  <pz:metadata type="title">Welcome Nature Climate Change</pz:metadata>
+  <pz:metadata type="citation">Nature, 2011, Vol.471(7340), pp.548</pz:metadata>
+  <pz:metadata type="subject">Climate Change</pz:metadata>
+  <pz:metadata type="subject">Periodicals As Topic–Trends</pz:metadata>
+  <pz:metadata type="has-fulltext">no</pz:metadata>
+  <pz:metadata type="date">2011</pz:metadata>
+  <pz:metadata type="journal-month">1</pz:metadata>
+  <pz:metadata type="volume-number">471</pz:metadata>
+  <pz:metadata type="issue-number">7340</pz:metadata>
+  <pz:metadata type="pages-number">548</pz:metadata>
+  <pz:metadata type="issn">0028-0836</pz:metadata>
+  <pz:metadata type="journal-title">Nature</pz:metadata>
+  <pz:metadata type="electronic-url">http://sfx.dbc.dk/dbc_test?ctx_ver=Z39.88-2004&amp;ctx_enc=info:ofi/enc:UTF-8&amp;ctx_tim=2014-10-30T08%3A23%3A06IST&amp;url_ver=Z39.88-2004&amp;url_ctx_fmt=infofi/fmt:kev:mtx:ctx&amp;rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-medline&amp;rft_val_fmt=info:ofi/fmt:kev:mtx:journal&amp;rft.genre=article&amp;rft.atitle=Welcome%20Nature%20Climate%20Change.&amp;rft.jtitle=Nature&amp;rft.btitle=&amp;rft.aulast=&amp;rft.aufirst=&amp;rft.auinit=&amp;rft.auinit1=&amp;rft.auinitm=&amp;rft.ausuffix=&amp;rft.au=&amp;rft.aucorp=&amp;rft.date=20110331&amp;rft.volume=471&amp;rft.issue=7340&amp;rft.part=&amp;rft.quarter=&amp;rft.ssn=&amp;rft.spage=548&amp;rft.epage=&amp;rft.pages=548&amp;rft.artnum=&amp;rft.issn=0028-0836&amp;rft.eissn=1476-4687&amp;rft.isbn=&amp;rft.sici=&amp;rft.coden=&amp;rft_id=info:doi/10.1038/471548b&amp;rft.object_id=&amp;rft.eisbn=&amp;rft_dat=&lt;medline&gt;21455132&lt;/medline&gt;&amp;rft_id=info:oai/&amp;req.language=</pz:metadata>
+</pz:record>
diff --git a/etc/xsl/primo-pz21.xml b/etc/xsl/primo-pz21.xml
new file mode 100644 (file)
index 0000000..6c1f596
--- /dev/null
@@ -0,0 +1,114 @@
+<rec xmlns:sear="http://www.exlibrisgroup.com/xsd/jaguar/search" >
+<sear:DOC ID="100300675" RANK="0.0023275323" NO="2" SEARCH_ENGINE="PrimoCentralThirdNode" SEARCH_ENGINE_TYPE="Primo Central Search Engine" LOCAL="false">
+          <PrimoNMBib xmlns="http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib">
+            <record>
+              <control>
+                <sourcerecordid>21455132</sourcerecordid>
+                <sourceid>medline</sourceid>
+                <recordid>TN_medline21455132</recordid>
+                <sourceformat>XML</sourceformat>
+                <sourcesystem>Other</sourcesystem>
+              </control>
+              <display>
+                <type>article</type>
+                <title>Welcome Nature Climate Change</title>
+                <ispartof>Nature, 2011, Vol.471(7340), pp.548</ispartof>
+                <identifier><![CDATA[<b>ISSN:</b> 0028-0836 ; <b>E-ISSN:</b> 1476-4687 ; <b>PMID:</b> 21455132 Version:1  <b>DOI:</b> 10.1038/471548b]]></identifier>
+                <subject>Climate Change; Periodicals As Topic -- Trends</subject>
+                <language>eng</language>
+                <source>U.S. National Library of Medicine</source>
+                <lds50>peer_reviewed</lds50>
+                <version>6</version>
+              </display>
+              <links>
+                <openurl>$$Topenurl_article</openurl>
+                <backlink>$$Uhttp://pubmed.gov/21455132$$EView_this_record_in_National_Library_of_Medicine</backlink>
+                <openurlfulltext>$$Topenurlfull_article</openurlfulltext>
+                <addlink>$$Uhttp://exlibris-pub.s3.amazonaws.com/aboutMedline.html$$EView_the_National_Library_of_Medicine_Copyright_Statement</addlink>
+              </links>
+              <search>
+                <title>Welcome Nature Climate Change.</title>
+                <subject>Climate Change</subject>
+                <subject>Periodicals as Topic -- trends</subject>
+                <general>21455132</general>
+                <general>English</general>
+                <general>MEDLINE (NLM)</general>
+                <general>10.1038/471548b</general>
+                <sourceid>medline</sourceid>
+                <recordid>medline21455132</recordid>
+                <issn>14764687</issn>
+                <issn>1476-4687</issn>
+                <issn>00280836</issn>
+                <issn>0028-0836</issn>
+                <rsrctype>article</rsrctype>
+                <creationdate>2011</creationdate>
+                <addtitle>Nature</addtitle>
+                <searchscope>medline</searchscope>
+                <searchscope>nlm_medline</searchscope>
+                <searchscope>MEDLINE</searchscope>
+                <scope>medline</scope>
+                <scope>nlm_medline</scope>
+                <scope>MEDLINE</scope>
+              </search>
+              <sort>
+                <title>Welcome Nature Climate Change</title>
+                <creationdate>20110331</creationdate>
+              </sort>
+              <facets>
+                <frbrgroupid>8618240028923758146</frbrgroupid>
+                <frbrtype>5</frbrtype>
+                <language>eng</language>
+                <creationdate>2011</creationdate>
+                <topic>Climate Change</topic>
+                <topic>Periodicals As Topic–Trends</topic>
+                <collection>MEDLINE (NLM)</collection>
+                <prefilter>articles</prefilter>
+                <rsrctype>articles</rsrctype>
+                <jtitle>Nature</jtitle>
+                <toplevel>peer_reviewed</toplevel>
+              </facets>
+              <frbr>
+                <t>2</t>
+                <k1>2011</k1>
+                <k2>00280836</k2>
+                <k2>14764687</k2>
+                <k3>10.1038/471548b</k3>
+                <k4>471</k4>
+                <k5>7340</k5>
+                <k6>548</k6>
+                <k7>nature</k7>
+                <k8>welcome nature climate change</k8>
+                <k9>welcomenatureclimatehange</k9>
+                <k10>21455132</k10>
+                <k12>welcomenatureclimatechang</k12>
+              </frbr>
+              <delivery>
+                <delcategory>Remote Search Resource</delcategory>
+                <fulltext>fulltext</fulltext>
+              </delivery>
+              <ranking>
+                <booster1>1</booster1>
+                <booster2>1</booster2>
+                <pcg_type>aggregator</pcg_type>
+              </ranking>
+              <addata>
+                <atitle>Welcome Nature Climate Change.</atitle>
+                <jtitle>Nature</jtitle>
+                <date>20110331</date>
+                <risdate>20110331</risdate>
+                <volume>471</volume>
+                <issue>7340</issue>
+                <spage>548</spage>
+                <pages>548</pages>
+                <issn>0028-0836</issn>
+                <eissn>1476-4687</eissn>
+                <format>journal</format>
+                <genre>article</genre>
+                <ristype>JOUR</ristype>
+                <doi>10.1038/471548b</doi>
+                <pmid>21455132</pmid>
+              </addata>
+            </record>
+          </PrimoNMBib>
+        <sear:GETIT deliveryCategory="Remote Search Resource" GetIt1="http://sfx.dbc.dk/dbc_test?ctx_ver=Z39.88-2004&amp;ctx_enc=info:ofi/enc:UTF-8&amp;ctx_tim=2014-10-30T08%3A23%3A06IST&amp;url_ver=Z39.88-2004&amp;url_ctx_fmt=infofi/fmt:kev:mtx:ctx&amp;rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-medline&amp;rft_val_fmt=info:ofi/fmt:kev:mtx:journal&amp;rft.genre=article&amp;rft.atitle=Welcome%20Nature%20Climate%20Change.&amp;rft.jtitle=Nature&amp;rft.btitle=&amp;rft.aulast=&amp;rft.auinit=&amp;rft.auinit1=&amp;rft.auinitm=&amp;rft.ausuffix=&amp;rft.au=&amp;rft.aucorp=&amp;rft.date=20110331&amp;rft.volume=471&amp;rft.issue=7340&amp;rft.part=&amp;rft.quarter=&amp;rft.ssn=&amp;rft.spage=548&amp;rft.epage=&amp;rft.pages=548&amp;rft.artnum=&amp;rft.issn=0028-0836&amp;rft.eissn=1476-4687&amp;rft.isbn=&amp;rft.sici=&amp;rft.coden=&amp;rft_id=info:doi/10.1038/471548b&amp;rft.object_id=&amp;svc_val_fmt=info:ofi/fmt:kev:mtx:sch_svc&amp;rft.eisbn=&amp;rft_dat=&lt;medline>21455132&lt;/medline>&amp;rft_id=info:oai/&amp;svc.fulltext=yes&amp;req.language=" GetIt2="http://sfx.dbc.dk/dbc_test?ctx_ver=Z39.88-2004&amp;ctx_enc=info:ofi/enc:UTF-8&amp;ctx_tim=2014-10-30T08%3A23%3A06IST&amp;url_ver=Z39.88-2004&amp;url_ctx_fmt=infofi/fmt:kev:mtx:ctx&amp;rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-medline&amp;rft_val_fmt=info:ofi/fmt:kev:mtx:journal&amp;rft.genre=article&amp;rft.atitle=Welcome%20Nature%20Climate%20Change.&amp;rft.jtitle=Nature&amp;rft.btitle=&amp;rft.aulast=&amp;rft.aufirst=&amp;rft.auinit=&amp;rft.auinit1=&amp;rft.auinitm=&amp;rft.ausuffix=&amp;rft.au=&amp;rft.aucorp=&amp;rft.date=20110331&amp;rft.volume=471&amp;rft.issue=7340&amp;rft.part=&amp;rft.quarter=&amp;rft.ssn=&amp;rft.spage=548&amp;rft.epage=&amp;rft.pages=548&amp;rft.artnum=&amp;rft.issn=0028-0836&amp;rft.eissn=1476-4687&amp;rft.isbn=&amp;rft.sici=&amp;rft.coden=&amp;rft_id=info:doi/10.1038/471548b&amp;rft.object_id=&amp;rft.eisbn=&amp;rft_dat=&lt;medline>21455132&lt;/medline>&amp;rft_id=info:oai/&amp;req.language="/><sear:LINKS><sear:openurl><![CDATA[http://sfx.dbc.dk/dbc_test?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2014-10-30T08%3A23%3A06IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-medline&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Welcome%20Nature%20Climate%20Change.&rft.jtitle=Nature&rft.btitle=&rft.aulast=&rft.aufirst=&rft.auinit=&rft.auinit1=&rft.auinitm=&rft.ausuffix=&rft.au=&rft.aucorp=&rft.date=20110331&rft.volume=471&rft.issue=7340&rft.part=&rft.quarter=&rft.ssn=&rft.spage=548&rft.epage=&rft.pages=548&rft.artnum=&rft.issn=0028-0836&rft.eissn=1476-4687&rft.isbn=&rft.sici=&rft.coden=&rft_id=info:doi/10.1038/471548b&rft.object_id=&rft.eisbn=&rft_dat=<medline>21455132</medline>&rft_id=info:oai/&req.language=]]></sear:openurl><sear:backlink>http://pubmed.gov/21455132</sear:backlink><sear:thumbnail/><sear:openurlfulltext><![CDATA[http://sfx.dbc.dk/dbc_test?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2014-10-30T08%3A23%3A06IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-medline&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Welcome%20Nature%20Climate%20Change.&rft.jtitle=Nature&rft.btitle=&rft.aulast=&rft.auinit=&rft.auinit1=&rft.auinitm=&rft.ausuffix=&rft.au=&rft.aucorp=&rft.date=20110331&rft.volume=471&rft.issue=7340&rft.part=&rft.quarter=&rft.ssn=&rft.spage=548&rft.epage=&rft.pages=548&rft.artnum=&rft.issn=0028-0836&rft.eissn=1476-4687&rft.isbn=&rft.sici=&rft.coden=&rft_id=info:doi/10.1038/471548b&rft.object_id=&svc_val_fmt=info:ofi/fmt:kev:mtx:sch_svc&rft.eisbn=&rft_dat=<medline>21455132</medline>&rft_id=info:oai/&svc.fulltext=yes&req.language=]]></sear:openurlfulltext><sear:addlink>http://exlibris-pub.s3.amazonaws.com/aboutMedline.html</sear:addlink></sear:LINKS></sear:DOC>
+</rec>
index 95e9975..c98ecbd 100644 (file)
       </xsl:for-each>
 
       <xsl:for-each select="tmarc:d903">
-        <xsl:if test="tmarc:sa">
+        <xsl:if test="number(tmarc:sa) &gt; 0">
           <pz:metadata type="publication-date">
-            <xsl:value-of select="substring(tmarc:sa,1,4)"/>
+            <xsl:value-of select="number(tmarc:sa)"/>
           </pz:metadata>
           <pz:metadata type="date">
-            <xsl:value-of select="substring(tmarc:sa,1,4)"/>
+            <xsl:value-of select="number(tmarc:sa)"/>
           </pz:metadata>
         </xsl:if>
       </xsl:for-each>
index fb6264c..1ee8096 100644 (file)
--- a/js/pz2.js
+++ b/js/pz2.js
@@ -319,7 +319,8 @@ pz2.prototype =
                         .childNodes[0].nodeValue == "OK" ) {
                     context.searchStatusOK = true;
                     //piggyback search
-                    context.show(start, num, sort);
+                    if (context.showCallback)
+                        context.show(start, num, sort);
                     if (context.statCallback)
                         context.stat();
                     if (context.termlistCallback)
@@ -708,11 +709,6 @@ pz2.prototype =
                         } else if (bytarget[i]["state"]=="Client_Working") {
                           bytarget[i]["hits"] = "...";
                         }
-                        if (bytarget[i].diagnostic == "1") {
-                          bytarget[i].diagnostic = "Permanent system error";
-                        } else if (bytarget[i].diagnostic == "2") {
-                          bytarget[i].diagnostic = "Temporary system error";
-                        } 
                         var targetsSuggestions = targetNodes[i].getElementsByTagName("suggestions");
                         if (targetsSuggestions != undefined && targetsSuggestions.length>0) {
                           var suggestions = targetsSuggestions[0];
index e5a2e5d..275bd40 100644 (file)
@@ -927,6 +927,8 @@ int client_start_search(struct client *cl)
     int present_chunk = 20; // Default chunk size
     int rc_prep_connection;
 
+    cl->diagnostic = 0;
+    cl->record_failures = cl->ingest_failures = cl->filtered = 0;
 
     yaz_gettimeofday(&tval);
     tval.tv_sec += 5;
@@ -961,9 +963,6 @@ int client_start_search(struct client *cl)
 
     session_log(se, YLOG_LOG, "%s: new search", client_get_id(cl));
 
-    cl->diagnostic = 0;
-    cl->record_failures = cl->ingest_failures = cl->filtered = 0;
-
     client_destroy_xdoc(cl);
     client_init_xdoc(cl);
 
@@ -1171,6 +1170,26 @@ void client_mark_dead(struct client *cl)
         connection_mark_dead(cl->connection);
 }
 
+void client_stop(struct client *cl)
+{
+    client_lock(cl);
+    if (cl->state == Client_Working || cl->state == Client_Connecting)
+    {
+        yaz_log(YLOG_LOG, "client_stop: %s release", client_get_id(cl));
+        if (cl->connection)
+        {
+            connection_release2(cl->connection);
+            assert(cl->ref_count > 1);
+            cl->ref_count--;
+            cl->connection = 0;
+        }
+        cl->state = Client_Disconnected;
+    }
+    else
+        yaz_log(YLOG_LOG, "client_stop: %s ignore", client_get_id(cl));
+    client_unlock(cl);
+}
+
 // Initialize CCL map for a target
 static CCL_bibset prepare_cclmap(struct client *cl, CCL_bibset base_bibset)
 {
index c7f5d3a..4d7fbf2 100644 (file)
@@ -102,6 +102,7 @@ void client_incref(struct client *c);
 void client_got_records(struct client *c);
 void client_lock(struct client *c);
 void client_unlock(struct client *c);
+void client_stop(struct client *c);
 
 int client_has_facet(struct client *cl, const char *name);
 void client_check_preferred_watch(struct client *cl);
index 2c7c0c2..7483118 100644 (file)
@@ -318,6 +318,11 @@ static void connection_handler(IOCHAN iochan, int event)
     }
 }
 
+void connection_release2(struct connection *co)
+{
+    co->client = 0;
+}
+
 static int connection_connect(struct connection *con, iochan_man_t iochan_man)
 {
     ZOOM_options zoptions = ZOOM_options_create();
index fe4f83a..459127e 100644 (file)
@@ -32,6 +32,7 @@ struct connection;
 ZOOM_connection connection_get_link(struct connection *co);
 void connection_continue(struct connection *co);
 void connection_mark_dead(struct connection *co);
+void connection_release2(struct connection *co);
 
 #endif
 
index 309a617..7c23404 100644 (file)
@@ -1457,6 +1457,17 @@ static void cmd_stat(struct http_channel *c)
     release_session(c, s);
 }
 
+static void cmd_stop(struct http_channel *c)
+{
+    struct http_session *s = locate_session(c);
+    if (!s)
+        return;
+    response_open_ok(c, "stop");
+    session_stop(s->psession);
+    response_close(c, "stop");
+    release_session(c, s);
+}
+
 static void cmd_info(struct http_channel *c)
 {
     char yaz_version_str[20];
@@ -1516,6 +1527,7 @@ struct {
     { "ping", cmd_ping },
     { "record", cmd_record },
     { "info", cmd_info },
+    { "stop", cmd_stop },
     {0,0}
 };
 
index 384038d..39dfb90 100644 (file)
@@ -726,6 +726,33 @@ void session_sort(struct session *se, struct reclist_sortparms *sp,
     }
 }
 
+void session_stop(struct session *se)
+{
+    struct client_list *l;
+    session_enter(se, "session_stop1");
+    if (se->clients_starting)
+    {
+        session_leave(se, "session_stop1");
+        return;
+    }
+    se->clients_starting = 1;
+    session_leave(se, "session_stop1");
+
+    session_alert_watch(se, SESSION_WATCH_SHOW);
+    session_alert_watch(se, SESSION_WATCH_BYTARGET);
+    session_alert_watch(se, SESSION_WATCH_TERMLIST);
+    session_alert_watch(se, SESSION_WATCH_SHOW_PREF);
+
+    for (l = se->clients_active; l; l = l->next)
+    {
+        struct client *cl = l->client;
+        client_stop(cl);
+    }
+    session_enter(se, "session_stop2");
+    se->clients_starting = 0;
+    session_leave(se, "session_stop2");
+}
+
 enum pazpar2_error_code session_search(struct session *se,
                                        const char *query,
                                        const char *startrecs,
index 76786f4..ecc5549 100644 (file)
@@ -186,6 +186,7 @@ int session_is_preferred_clients_ready(struct session *s);
 void session_apply_setting(struct session *se, const char *dbname,
                            const char *setting, const char *value);
 const char *session_setting_oneval(struct session_database *db, int offset);
+void session_stop(struct session *se);
 
 int ingest_record(struct client *cl, const char *rec, int record_no, NMEM nmem);
 int ingest_xml_record(struct client *cl, xmlDoc *xdoc,
index 8976541..27583bd 100644 (file)
@@ -12,6 +12,8 @@ EXTRA_DIST = run_pazpar2.sh marc21_test.xsl tmarc.xsl solr-pz2.xsl \
        gils_service.xml marc_service.xml marc21.mmap \
        test_facets.cfg test_facets.urls \
        test_icu.cfg test_icu.urls \
+       test_sru.cfg test_sru.urls \
+       test_perf.cfg test_perf.urls \
        test_http.cfg test_http.urls \
        test_post.cfg test_post.urls \
        test_settings.cfg test_settings.urls \
index 1f4a94d..c0b8f85 100755 (executable)
@@ -59,6 +59,17 @@ if test "x${PREFIX}" = "x"; then
     exit 1
 fi
 
+URLS=${PREFIX}.urls
+if test ! -f ${srcdir}/${URLS}; then
+    echo "${srcdir}/${URLS} missing"
+    exit 1
+fi
+CFG=${PREFIX}.cfg
+if test ! -f ${srcdir}/${CFG}; then
+    echo "${srcdir}/${CFG} missing"
+    exit 1
+fi
+
 # look for curl in PATH
 oIFS=$IFS
 IFS=:
@@ -136,8 +147,6 @@ if [ -z "$SKIP_PAZPAR2" ] ; then
     rm -f ${PREFIX}_pazpar2.log
 fi
 
-CFG=${PREFIX}.cfg
-URLS=${PREFIX}.urls
 VALGRINDLOG=${PREFIX}_valgrind.log
 
 if test `uname` = "Linux"; then
index c6fd22c..5fdafea 100755 (executable)
@@ -9,6 +9,7 @@ if test -z "$PERF_PROG"; then
         PERF_PROG="/usr/bin/time -p"
     fi
 fi
+export PERF_PROG
 exec ${srcdir}/run_pazpar2.sh --ztest --icu $TEST
 
 # Local Variables:
diff --git a/test/xslt/cf-output.REGRESSION b/test/xslt/cf-output.REGRESSION
deleted file mode 100644 (file)
index 2f7d0a2..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<pz:record xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:siebel="http://loc.gov/siebel/elements/1.0/">
-  <pz:metadata type="medium"/>
-  <pz:metadata type="electronic-url">http://817748.cfproxy.indexdata.com/www.jstor.org/stable/3436096?&amp;Search=yes&amp;searchText=fish&amp;list=hide&amp;searchUri=%2Faction%2FdoBasicSearch%3FQuery%3Dfish%26acc%3Doff%26wc%3Don&amp;prevSearch=&amp;item=1&amp;ttl=337590&amp;returnArticleService=showFullText</pz:metadata>
-  <pz:metadata type="title">Fish Consumption and Advisory Awareness in the Great Lakes Basin</pz:metadata>
-  <pz:metadata type="title-complete">Fish Consumption and Advisory Awareness in the Great Lakes Basin</pz:metadata>
-  <pz:metadata type="author">Pamela Imm</pz:metadata>
-  <pz:metadata type="author">Lynda Knobeloch</pz:metadata>
-  <pz:metadata type="author">Henry A. Anderson</pz:metadata>
-  <pz:metadata type="author">The Great Lakes Sport Fish Consortium</pz:metadata>
-  <pz:metadata type="journal-title">Environmental Health Perspectives </pz:metadata>
-  <pz:metadata type="permalink">http://www.jstor.org/stable/3436096?&amp;Search=yes&amp;searchText=fish&amp;list=hide&amp;searchUri=%2Faction%2FdoBasicSearch%3FQuery%3Dfish%26acc%3Doff%26wc%3Don&amp;prevSearch=&amp;item=1&amp;ttl=337590&amp;returnArticleService=showFullText</pz:metadata>
-  <pz:metadata type="publication-date">2005-10</pz:metadata>
-  <pz:metadata type="date">2005-10</pz:metadata>
-  <pz:metadata type="volume">113</pz:metadata>
-  <pz:metadata type="issue">10</pz:metadata>
-  <pz:metadata type="page">1325</pz:metadata>
-  <pz:metadata type="endpage">1329</pz:metadata>
-  <pz:metadata type="languageitem">en</pz:metadata>
-  <pz:metadata type="languageabstract">fr</pz:metadata>
-  <pz:metadata type="format">text/pdf</pz:metadata>
-  <pz:metadata type="extent">pp. 456-472</pz:metadata>
-  <pz:metadata type="doctype">research report</pz:metadata>
-  <pz:metadata type="pubtype">journal article</pz:metadata>
-  <pz:metadata type="copyright">Elsevier, of course</pz:metadata>
-  <pz:metadata type="copyrightabstract">public domain</pz:metadata>
-  <pz:metadata type="booktitle">Adventure of Gladys Stoatpamphlet</pz:metadata>
-  <pz:metadata type="relevance">4.375</pz:metadata>
-  <pz:metadata type="citation">Taylor et al. 2011b</pz:metadata>
-  <pz:metadata type="available">2012-03-12</pz:metadata>
-  <pz:metadata type="id">504468</pz:metadata>
-  <pz:metadata type="score">1279</pz:metadata>
-  <pz:metadata type="thumburl">http://www.miketaylor.org.uk/dino/xeno/images/thumb/DINO_4.jpeg</pz:metadata>
-  <pz:metadata type="due">2012-04-12</pz:metadata>
-  <pz:metadata type="issn">1234-5678</pz:metadata>
-  <pz:metadata type="isbn">0891345655</pz:metadata>
-  <pz:metadata type="subject">dinosaurs, palaeontology</pz:metadata>
-  <pz:metadata type="publisher">Reed Elsevier, plc.</pz:metadata>
-  <pz:metadata type="description">A big book</pz:metadata>
-  <pz:metadata type="fulltexturl">https://bugzilla.indexdata.com/show_bug.cgi?id=4713</pz:metadata>
-</pz:record>
diff --git a/test/xslt/sample-cf-record.xml b/test/xslt/sample-cf-record.xml
deleted file mode 100644 (file)
index d1b6418..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-<record>
-  <url>http://817748.cfproxy.indexdata.com/www.jstor.org/stable/3436096?&amp;Search=yes&amp;searchText=fish&amp;list=hide&amp;searchUri=%2Faction%2FdoBasicSearch%3FQuery%3Dfish%26acc%3Doff%26wc%3Don&amp;prevSearch=&amp;item=1&amp;ttl=337590&amp;returnArticleService=showFullText</url>
-  <title>Fish Consumption and Advisory Awareness in the Great Lakes Basin</title>
-  <author>Pamela Imm</author>
-  <author>Lynda Knobeloch</author>
-  <author>Henry A. Anderson</author>
-  <author>The Great Lakes Sport Fish Consortium</author>
-  <journaltitle>Environmental Health Perspectives </journaltitle>
-  <permalink>http://www.jstor.org/stable/3436096?&amp;Search=yes&amp;searchText=fish&amp;list=hide&amp;searchUri=%2Faction%2FdoBasicSearch%3FQuery%3Dfish%26acc%3Doff%26wc%3Don&amp;prevSearch=&amp;item=1&amp;ttl=337590&amp;returnArticleService=showFullText</permalink>
-  <date>2005-10</date>
-  <volume>113</volume>
-  <issue>10</issue>
-  <page>1325</page>
-  <endpage>1329</endpage>
-  <languageitem>en</languageitem>
-  <languageabstract>fr</languageabstract>
-  <format>text/pdf</format>
-  <extent>pp. 456-472</extent>
-  <doctype>research report</doctype>
-  <pubtype>journal article</pubtype>
-  <copyright>Elsevier, of course</copyright>
-  <copyrightabstract>public domain</copyrightabstract>
-  <booktitle>Adventure of Gladys Stoatpamphlet</booktitle>
-  <relevance>4.375</relevance>
-  <citation>Taylor et al. 2011b</citation>
-  <available>2012-03-12</available>
-  <id>504468</id>
-  <score>1279</score>
-  <thumburl>http://www.miketaylor.org.uk/dino/xeno/images/thumb/DINO_4.jpeg</thumburl>
-  <due>2012-04-12</due>
-  <issn>1234-5678</issn>
-  <isbn>0891345655</isbn>
-  <subject>dinosaurs, palaeontology</subject>
-  <publisher>Reed Elsevier, plc.</publisher>
-  <description>A big book</description>
-  <fulltexturl>https://bugzilla.indexdata.com/show_bug.cgi?id=4713</fulltexturl>
-</record>
index a0d89ea..edb04a4 100644 (file)
@@ -5,7 +5,7 @@
 DEBUG=0   # 0 for release, 1 for debug
 USE_MANIFEST = 1 # Can be enabled Visual Studio 2005/2008
 PACKAGE_NAME=pazpar2
-PACKAGE_VERSION=1.7.5
+PACKAGE_VERSION=1.8.2
 
 # YAZ
 YAZ_DIR=..\..\yaz