Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/pazpar2
authorDennis Schafroth <dennis@indexdata.com>
Mon, 7 Nov 2011 09:23:54 +0000 (10:23 +0100)
committerDennis Schafroth <dennis@indexdata.com>
Mon, 7 Nov 2011 09:23:54 +0000 (10:23 +0100)
21 files changed:
.cproject
.project
js/pz2.js
src/client.c
src/http_command.c
src/session.h
test/test_termlist_block.cfg [new file with mode: 0644]
test/test_termlist_block.res [new file with mode: 0644]
test/test_termlist_block.sh [new file with mode: 0755]
test/test_termlist_block.urls [new file with mode: 0644]
test/test_termlist_block_1.res [new file with mode: 0644]
test/test_termlist_block_10.res [new file with mode: 0644]
test/test_termlist_block_11.res [new file with mode: 0644]
test/test_termlist_block_2.res [new file with mode: 0644]
test/test_termlist_block_3.res [new file with mode: 0644]
test/test_termlist_block_4.res [new file with mode: 0644]
test/test_termlist_block_5.res [new file with mode: 0644]
test/test_termlist_block_6.res [new file with mode: 0644]
test/test_termlist_block_7.res [new file with mode: 0644]
test/test_termlist_block_8.res [new file with mode: 0644]
test/test_termlist_block_9.res [new file with mode: 0644]

index be8b449..370e803 100644 (file)
--- a/.cproject
+++ b/.cproject
@@ -22,7 +22,7 @@
                                        <folderInfo id="cdt.managedbuild.config.gnu.macosx.exe.debug.1350738082." name="/" resourcePath="">
                                                <toolChain id="cdt.managedbuild.toolchain.gnu.macosx.exe.debug.642779913" name="MacOSX GCC" superClass="cdt.managedbuild.toolchain.gnu.macosx.exe.debug">
                                                        <targetPlatform id="cdt.managedbuild.target.gnu.platform.macosx.exe.debug.206052691" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.macosx.exe.debug"/>
-                                                       <builder buildPath="${workspace_loc:/pazpar2.master/Debug}" id="cdt.managedbuild.target.gnu.builder.macosx.exe.debug.2009339594" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.macosx.exe.debug"/>
+                                                       <builder arguments="-k" buildPath="${workspace_loc:/pazpar2.master/Debug}" command="make" id="cdt.managedbuild.target.gnu.builder.macosx.exe.debug.2009339594" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.macosx.exe.debug"/>
                                                        <tool id="cdt.managedbuild.tool.macosx.c.linker.macosx.exe.debug.937721886" name="MacOS X C Linker" superClass="cdt.managedbuild.tool.macosx.c.linker.macosx.exe.debug">
                                                                <inputType id="cdt.managedbuild.tool.macosx.c.linker.input.377427532" superClass="cdt.managedbuild.tool.macosx.c.linker.input">
                                                                        <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
                                        </folderInfo>
                                </configuration>
                        </storageModule>
-                       <storageModule moduleId="scannerConfiguration">
-                               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-                               <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="makefileGenerator">
-                                               <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.macosx.exe.debug.1350738082;cdt.managedbuild.config.gnu.macosx.exe.debug.1350738082.;cdt.managedbuild.tool.gnu.c.compiler.macosx.exe.debug.2080175189;cdt.managedbuild.tool.gnu.c.compiler.input.1159745856">
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="makefileGenerator">
-                                                       <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                               </scannerConfigBuildInfo>
-                               <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.macosx.exe.release.397760623;cdt.managedbuild.config.macosx.exe.release.397760623.;cdt.managedbuild.tool.gnu.c.compiler.macosx.exe.release.479123096;cdt.managedbuild.tool.gnu.c.compiler.input.144338339">
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="makefileGenerator">
-                                                       <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                               </scannerConfigBuildInfo>
-                       </storageModule>
                        <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
                        <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
                </cconfiguration>
                                        </folderInfo>
                                </configuration>
                        </storageModule>
-                       <storageModule moduleId="scannerConfiguration">
-                               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-                               <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="makefileGenerator">
-                                               <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-                                       <buildOutputProvider>
-                                               <openAction enabled="true" filePath=""/>
-                                               <parser enabled="true"/>
-                                       </buildOutputProvider>
-                                       <scannerInfoProvider id="specsFile">
-                                               <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-                                               <parser enabled="true"/>
-                                       </scannerInfoProvider>
-                               </profile>
-                               <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.macosx.exe.debug.1350738082;cdt.managedbuild.config.gnu.macosx.exe.debug.1350738082.;cdt.managedbuild.tool.gnu.c.compiler.macosx.exe.debug.2080175189;cdt.managedbuild.tool.gnu.c.compiler.input.1159745856">
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="makefileGenerator">
-                                                       <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                               </scannerConfigBuildInfo>
-                               <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.macosx.exe.release.397760623;cdt.managedbuild.config.macosx.exe.release.397760623.;cdt.managedbuild.tool.gnu.c.compiler.macosx.exe.release.479123096;cdt.managedbuild.tool.gnu.c.compiler.input.144338339">
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="makefileGenerator">
-                                                       <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
-                                               <buildOutputProvider>
-                                                       <openAction enabled="true" filePath=""/>
-                                                       <parser enabled="true"/>
-                                               </buildOutputProvider>
-                                               <scannerInfoProvider id="specsFile">
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
-                                                       <parser enabled="true"/>
-                                               </scannerInfoProvider>
-                                       </profile>
-                               </scannerConfigBuildInfo>
-                       </storageModule>
                        <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
                        <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
                </cconfiguration>
        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
                <project id="pazpar2.master.cdt.managedbuild.target.macosx.exe.943143256" name="Executable" projectType="cdt.managedbuild.target.macosx.exe"/>
        </storageModule>
+       <storageModule moduleId="refreshScope" versionNumber="1">
+               <resource resourceType="PROJECT" workspacePath="/pazpar2"/>
+       </storageModule>
+       <storageModule moduleId="scannerConfiguration">
+               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+                       <buildOutputProvider>
+                               <openAction enabled="true" filePath=""/>
+                               <parser enabled="true"/>
+                       </buildOutputProvider>
+                       <scannerInfoProvider id="makefileGenerator">
+                               <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+                               <parser enabled="true"/>
+                       </scannerInfoProvider>
+               </profile>
+               <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.macosx.exe.debug.1350738082;cdt.managedbuild.config.gnu.macosx.exe.debug.1350738082.;cdt.managedbuild.tool.gnu.c.compiler.macosx.exe.debug.2080175189;cdt.managedbuild.tool.gnu.c.compiler.input.1159745856">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="makefileGenerator">
+                                       <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.macosx.exe.release.397760623;cdt.managedbuild.config.macosx.exe.release.397760623.;cdt.managedbuild.tool.gnu.c.compiler.macosx.exe.release.479123096;cdt.managedbuild.tool.gnu.c.compiler.input.144338339">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="makefileGenerator">
+                                       <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+               </scannerConfigBuildInfo>
+       </storageModule>
+       <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
 </cproject>
index abaaf39..6884081 100644 (file)
--- a/.project
+++ b/.project
@@ -63,7 +63,7 @@
                                </dictionary>
                                <dictionary>
                                        <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
-                                       <value>true</value>
+                                       <value>false</value>
                                </dictionary>
                        </arguments>
                </buildCommand>
index 75fd309..ca0d28c 100644 (file)
--- a/js/pz2.js
+++ b/js/pz2.js
@@ -629,7 +629,12 @@ pz2.prototype =
         var context = this;
         var request = new pzHttpRequest(this.pz2String, this.errorHandler);
         request.safeGet(
-            { "command": "bytarget", "session": this.sessionID, "windowid" : window.name},
+            { 
+               "command": "bytarget", 
+               "session": this.sessionID, 
+               "block": 1,
+               "windowid" : window.name
+           },
             function(data) {
                 if ( data.getElementsByTagName("status")[0]
                         .childNodes[0].nodeValue == "OK" ) {
index 0a1eb61..8751137 100644 (file)
@@ -184,6 +184,8 @@ void client_set_state(struct client *cl, enum client_state st)
                 client_get_id(cl), no_active);
         if (no_active == 0) {
             session_alert_watch(cl->session, SESSION_WATCH_SHOW);
+            session_alert_watch(cl->session, SESSION_WATCH_BYTARGET);
+            session_alert_watch(cl->session, SESSION_WATCH_TERMLIST);
             session_alert_watch(cl->session, SESSION_WATCH_SHOW_PREF);
         }
     }
@@ -554,6 +556,8 @@ void client_got_records(struct client *cl)
     {
         client_unlock(cl);
         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_RECORD);
         client_lock(cl);
     }
@@ -1192,7 +1196,7 @@ const char * client_get_suggestions_xml(struct client *cl, WRBUF wrbuf)
     struct suggestions *suggestions = cl->suggestions;
 
     if (!suggestions) {
-        yaz_log(YLOG_DEBUG, "No suggestions found");
+        //yaz_log(YLOG_DEBUG, "No suggestions found");
         return "";
     }
     if (suggestions->passthrough) {
index 7b296c7..ffe6b6d 100644 (file)
@@ -229,6 +229,7 @@ static const char *get_msg(enum pazpar2_error_code code)
         { PAZPAR2_RECORD_FAIL, "Record command failed"},
         { PAZPAR2_NOT_IMPLEMENTED, "Not implemented"},
         { PAZPAR2_NO_SERVICE, "No service"},
+        { PAZPAR2_ALREADY_BLOCKED, "Already blocked in session on: "},
         { PAZPAR2_LAST_ERROR, "Last error"},
         { 0, 0 }
     };
@@ -320,8 +321,8 @@ unsigned int make_sessionid(void)
 
 static struct http_session *locate_session(struct http_channel *c)
 {
-    struct http_response *rs = c->response;
     struct http_request *rq = c->request;
+    struct http_response *rs = c->response;
     struct http_session *p;
     const char *session = http_argbyname(rq, "session");
     http_sessions_t http_sessions = c->http_sessions;
@@ -508,7 +509,7 @@ static void cmd_settings(struct http_channel *c)
     release_session(c, s);
 }
 
-static void cmd_termlist(struct http_channel *c)
+static void termlist_response(struct http_channel *c)
 {
     struct http_request *rq = c->request;
     struct http_session *s = locate_session(c);
@@ -517,14 +518,11 @@ static void cmd_termlist(struct http_channel *c)
     int num = 15;
     int status;
 
-    if (!s)
-        return;
-
-    status = session_active_clients(s->psession);
-
     if (nums)
         num = atoi(nums);
 
+    status = session_active_clients(s->psession);
+
     response_open_no_status(c, "termlist");
     wrbuf_printf(c->wrbuf, "<activeclients>%d</activeclients>\n", status);
 
@@ -534,6 +532,46 @@ static void cmd_termlist(struct http_channel *c)
     release_session(c, s);
 }
 
+static void termlist_result_ready(void *data)
+{
+    struct http_channel *c = (struct http_channel *) data;
+    yaz_log(c->http_sessions->log_level, "termlist watch released");
+    termlist_response(c);
+}
+
+static void cmd_termlist(struct http_channel *c)
+{
+    struct http_request *rq = c->request;
+    struct http_response *rs = c->response;
+    struct http_session *s = locate_session(c);
+    const char *block = http_argbyname(rq, "block");
+    int active_clients;
+    if (!s)
+        return;
+
+    active_clients = session_active_clients(s->psession);
+
+    if (block && !strcmp("1", block) && active_clients)
+    {
+        // if there is already a watch/block. we do not block this one
+        if (session_set_watch(s->psession, SESSION_WATCH_TERMLIST,
+                              termlist_result_ready, c, c) != 0)
+        {
+            yaz_log(YLOG_WARN, "Attempt to block multiple times on termlist block. Not supported!");
+            error(rs, PAZPAR2_ALREADY_BLOCKED, "termlist");
+        }
+        else
+        {
+            yaz_log(c->http_sessions->log_level, "%p Session %u: Blocking on command termlist", s, s->session_id);
+        }
+        release_session(c, s);
+        return;
+    }
+
+    termlist_response(c);
+    release_session(c, s);
+}
+
 size_t session_get_memory_status(struct session *session);
 
 static void session_status(struct http_channel *c, struct http_session *s)
@@ -600,20 +638,17 @@ static void cmd_server_status(struct http_channel *c)
     xmalloc_trav(0);
 }
 
-
-static void cmd_bytarget(struct http_channel *c)
-{
-    struct http_request *rq = c->request;
-    struct http_session *s = locate_session(c);
+static void bytarget_response(struct http_channel *c) {
+    int count, i;
     struct hitsbytarget *ht;
+    struct http_request *rq = c->request;
     const char *settings = http_argbyname(rq, "settings");
-    int count, i;
+    struct http_session *s = locate_session(c);
 
-    if (!s)
-        return;
     ht = get_hitsbytarget(s->psession, &count, c->nmem);
     response_open(c, "bytarget");
-
+    if (count == 0)
+        yaz_log(YLOG_WARN, "Empty bytarget Response. No targets found!");
     for (i = 0; i < count; i++)
     {
         wrbuf_puts(c->wrbuf, "\n<target>");
@@ -653,6 +688,47 @@ static void cmd_bytarget(struct http_channel *c)
     release_session(c, s);
 }
 
+static void bytarget_result_ready(void *data)
+{
+    struct http_channel *c = (struct http_channel *) data;
+    yaz_log(c->http_sessions->log_level, "bytarget watch released");
+    bytarget_response(c);
+}
+
+
+static void cmd_bytarget(struct http_channel *c)
+{
+    struct http_request *rq = c->request;
+    struct http_response *rs = c->response;
+    struct http_session *s = locate_session(c);
+    const char *block = http_argbyname(rq, "block");
+    int no_active;
+
+    if (!s)
+        return;
+
+    no_active = session_active_clients(s->psession);
+
+    if (block && !strcmp("1",block) && no_active)
+    {
+        // if there is already a watch/block. we do not block this one
+        if (session_set_watch(s->psession, SESSION_WATCH_BYTARGET,
+                              bytarget_result_ready, c, c) != 0)
+        {
+            yaz_log(YLOG_WARN, "Attempt to block multiple times on bytarget block. Not supported!");
+            error(rs, PAZPAR2_ALREADY_BLOCKED, "bytarget"); 
+        }
+        else
+        {
+            yaz_log(c->http_sessions->log_level, "%p Session %u: Blocking on command bytarget", s, s->session_id);
+        }
+        release_session(c, s);
+        return;
+    }
+    bytarget_response(c);
+    release_session(c, s);
+}
+
 static void write_metadata(WRBUF w, struct conf_service *service,
         struct record_metadata **ml, int full)
 {
@@ -865,7 +941,7 @@ static void cmd_record(struct http_channel *c)
 static void cmd_record_ready(void *data)
 {
     struct http_channel *c = (struct http_channel *) data;
-
+    yaz_log(c->http_sessions->log_level, "record watch released");
     cmd_record(c);
 }
 
@@ -947,13 +1023,14 @@ static void show_records(struct http_channel *c, int active)
 static void show_records_ready(void *data)
 {
     struct http_channel *c = (struct http_channel *) data;
-
+    yaz_log(c->http_sessions->log_level, "show watch released");
     show_records(c, -1);
 }
 
 static void cmd_show(struct http_channel *c)
 {
-    struct http_request *rq = c->request;
+    struct http_request  *rq = c->request;
+    struct http_response *rs = c->response;
     struct http_session *s = locate_session(c);
     const char *block = http_argbyname(rq, "block");
     const char *sort = http_argbyname(rq, "sort");
@@ -982,10 +1059,15 @@ static void cmd_show(struct http_channel *c)
         {
             // if there is already a watch/block. we do not block this one
             if (session_set_watch(s->psession, SESSION_WATCH_SHOW_PREF,
-                                  show_records_ready, c, c) != 0)
+                                  show_records_ready, c, c) == 0)
             {
                 yaz_log(c->http_sessions->log_level,
-                        "%p Session %u: Blocking on cmd_show. Waiting for preferred targets", s, s->session_id);
+                        "%p Session %u: Blocking on command show (preferred targets)", s, s->session_id);
+            }
+            else
+            {
+                yaz_log(YLOG_WARN, "Attempt to block multiple times on show (preferred targets) block. Not supported!");
+                error(rs, PAZPAR2_ALREADY_BLOCKED, "show (preferred targets)"); 
             }
             release_session(c, s);
             return;
@@ -997,7 +1079,12 @@ static void cmd_show(struct http_channel *c)
             if (session_set_watch(s->psession, SESSION_WATCH_SHOW,
                                   show_records_ready, c, c) != 0)
             {
-                yaz_log(c->http_sessions->log_level, "%p Session %u: Blocking on cmd_show", s, s->session_id);
+                yaz_log(YLOG_WARN, "Attempt to block multiple times on show block. Not supported!");
+                error(rs, PAZPAR2_ALREADY_BLOCKED, "show"); 
+            }
+            else
+            {
+                yaz_log(c->http_sessions->log_level, "%p Session %u: Blocking on command show", s, s->session_id);
             }
             release_session(c, s);
             return;
index f1d6764..44bd94c 100644 (file)
@@ -48,6 +48,7 @@ enum pazpar2_error_code {
     PAZPAR2_RECORD_FAIL,
     PAZPAR2_NOT_IMPLEMENTED,
     PAZPAR2_NO_SERVICE,
+    PAZPAR2_ALREADY_BLOCKED,
 
     PAZPAR2_LAST_ERROR
 };
@@ -75,7 +76,9 @@ struct session_database
 #define SESSION_WATCH_SHOW      0
 #define SESSION_WATCH_RECORD    1
 #define SESSION_WATCH_SHOW_PREF 2
-#define SESSION_WATCH_MAX       2
+#define SESSION_WATCH_TERMLIST  3
+#define SESSION_WATCH_BYTARGET  4
+#define SESSION_WATCH_MAX       4
 
 #define SESSION_MAX_TERMLISTS 10
 
diff --git a/test/test_termlist_block.cfg b/test/test_termlist_block.cfg
new file mode 100644 (file)
index 0000000..16425e2
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<pazpar2 xmlns="http://www.indexdata.com/pazpar2/1.0">
+  <!-- Used by test_preferred.sh -->
+  <server>
+    <listen port="9763"/>
+    <proxy host="localhost"/>
+    
+    <service>
+      <include src="z3950_indexdata_com_marc.xml"/>
+      <metadata name="url" merge="unique"/>
+      <metadata name="title" brief="yes" sortkey="skiparticle" merge="longest" rank="6" mergekey="required" />
+      <metadata name="title-remainder" brief="yes" merge="longest" rank="5"/>
+      <metadata name="isbn"/>
+      <metadata name="date" brief="yes" sortkey="numeric" type="year" merge="range"
+               termlist="yes"/>
+      <metadata name="author" brief="yes" termlist="yes" merge="longest" rank="2" mergekey="optional" />
+      <metadata name="subject" merge="unique" termlist="yes" rank="3"/>
+      <metadata name="id"/>
+      <metadata name="lccn" merge="unique"/>
+      <metadata name="description" brief="yes" merge="longest" rank="3"/>
+      
+      <metadata name="test-usersetting" brief="yes" setting="postproc"/>
+      <metadata name="test" setting="parameter"/>
+      <metadata name="test-usersetting-2" brief="yes"/>
+    </service>
+
+    <include src="*_service.xml"/> 
+    <include src="no_such_service.xml"/>
+
+  </server>
+  
+  
+</pazpar2>
+<!-- Keep this comment at the end of the file
+     Local variables:
+     mode: nxml
+     End:
+-->
diff --git a/test/test_termlist_block.res b/test/test_termlist_block.res
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/test/test_termlist_block.sh b/test/test_termlist_block.sh
new file mode 100755 (executable)
index 0000000..e7b1203
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+# srcdir might be set by make
+srcdir=${srcdir:-"."}
+
+#TODO set up solr target. For now use donut 
+#F=../solr/client.sh 
+#
+#rm -f solr.pid
+#$F -l solr.log -p ztest.pid -D @:9999
+#sleep 1
+#if test ! -f ztest.pid; then
+#    echo "yaz-ztest could not be started"
+#    exit 0
+#fi
+
+${srcdir}/run_pazpar2.sh test_termlist_block
+E=$?
+
+#kill `cat ztest.pid`
+#rm ztest.pid
+exit $E
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation: 2
+# sh-basic-offset: 4
+# End:
diff --git a/test/test_termlist_block.urls b/test/test_termlist_block.urls
new file mode 100644 (file)
index 0000000..07fd600
--- /dev/null
@@ -0,0 +1,11 @@
+http://localhost:9763/search.pz2?command=init&clear=1
+http://localhost:9763/search.pz2?session=1&command=settings&full_text_target%5Bid_ocw%5D=NO&use_url_proxy%5Bid_ocw%5D=0&pz:preferred%5Bid_ocw%5D=1&pz:piggyback%5Bid_ocw%5D=1&pz:authentication%5Bid_ocw%5D=idtest%2Fidtest36&pz:cclmap%3Asu%5Bid_ocw%5D=u%3D21+s%3Dal&use_thumbnails%5Bid_ocw%5D=1&pz:requestsyntax%5Bid_ocw%5D=xml&pz:name%5Bid_ocw%5D=MIT+OpenCourseWare&pz:cclmap%3Aissn%5Bid_ocw%5D=u%3D8&pz:cclmap%3Ati%5Bid_ocw%5D=u%3D4+s%3Dal&pz:cclmap%3Aau%5Bid_ocw%5D=u%3D1003+s%3Dal&pz:xslt%5Bid_ocw%5D=cf.xsl&pz:cclmap%3Aterm%5Bid_ocw%5D=u%3D1016+t%3Dl%2Cr+s%3Dal+2%3D102&pz:cclmap%3Aisbn%5Bid_ocw%5D=u%3D7&pz:queryencoding%5Bid_ocw%5D=UTF-8&pz:url%5Bid_ocw%5D=connect.indexdata.com%3A9000%2Fmit_opencourseware
+http://localhost:9763/search.pz2?session=1&command=search&query=su%3D%22computer%22
+4 http://localhost:9763/search.pz2?session=1&command=show&block=1
+http://localhost:9763/search.pz2?session=1&command=bytarget
+http://localhost:9763/search.pz2?session=1&command=termlist&block=1&name=xtargets%2Cauthor%2Csubject%2Cdate
+http://localhost:9763/search.pz2?session=1&command=settings&full_text_target%5Bid_solr%5D=NO&pz:termlist_term_count%5Bid_solr%5D=10&use_url_proxy%5Bid_solr%5D=0&pz:piggyback%5Bid_solr%5D=1&pz:preferred%5Bid_solr%5D=0&pz:block_timeout%5Bid_solr%5D=2&pz:cclmap%3Asu%5Bid_solr%5D=1%3Dsubject&pz:sru%5Bid_solr%5D=solr&use_thumbnails%5Bid_solr%5D=0&pz:name%5Bid_solr%5D=LOC+%28SOLR%29&pz:cclmap%3Aissn%5Bid_solr%5D=u%3D8&pz:cclmap%3Ati%5Bid_solr%5D=1%3Dtitle&pz:cclmap%3Aau%5Bid_solr%5D=1%3Dauthor&pz:xslt%5Bid_solr%5D=solr-pz2.xsl&pz:cclmap%3Aterm%5Bid_solr%5D=1%3Dtext+s%3Dal&pz:cclmap%3Aisbn%5Bid_solr%5D=1%3Disbn&pz:queryencoding%5Bid_solr%5D=UTF-8&pz:url%5Bid_solr%5D=ocs-test.indexdata.com%2Fsolr%2Fselect
+http://localhost:9763/search.pz2?session=1&command=search&query=su%3D%22computer%22
+4 http://localhost:9763/search.pz2?session=1&command=show&block=1
+http://localhost:9763/search.pz2?session=1&command=bytarget
+http://localhost:9763/search.pz2?session=1&command=termlist&block=1&name=xtargets%2Cauthor%2Csubject%2Cdate
diff --git a/test/test_termlist_block_1.res b/test/test_termlist_block_1.res
new file mode 100644 (file)
index 0000000..81ff9ff
--- /dev/null
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<init><status>OK</status><session>1</session><protocol>1</protocol></init>
\ No newline at end of file
diff --git a/test/test_termlist_block_10.res b/test/test_termlist_block_10.res
new file mode 100644 (file)
index 0000000..7578770
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bytarget><status>OK</status>
+<target><id>id_ocw</id>
+<name>MIT OpenCourseWare</name>
+<hits>0</hits>
+<diagnostic>114</diagnostic>
+<records>0</records>
+<state>Client_Error</state>
+</target>
+<target><id>id_solr</id>
+<name>LOC (SOLR)</name>
+<hits>1043</hits>
+<diagnostic>0</diagnostic>
+<records>100</records>
+<state>Client_Idle</state>
+</target></bytarget>
\ No newline at end of file
diff --git a/test/test_termlist_block_11.res b/test/test_termlist_block_11.res
new file mode 100644 (file)
index 0000000..9076038
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<termlist><activeclients>0</activeclients>
+<list name="xtargets">
+<term>
+<id>id_solr</id>
+<name>LOC (SOLR)</name>
+<frequency>1043</frequency>
+<state>Client_Idle</state>
+<diagnostic>0</diagnostic>
+</term>
+</list>
+<list name="author">
+<term><name>Norton, Peter</name><frequency>2</frequency></term>
+<term><name>Aldrich, Richard W</name><frequency>1</frequency></term>
+<term><name>Anderson, Robert H</name><frequency>1</frequency></term>
+<term><name>Arnold, Ken</name><frequency>1</frequency></term>
+<term><name>Burgess, Mark</name><frequency>1</frequency></term>
+<term><name>Carasik, Anne H</name><frequency>1</frequency></term>
+<term><name>Davis, Phyllis</name><frequency>1</frequency></term>
+<term><name>Dowd, Kevin</name><frequency>1</frequency></term>
+<term><name>Farley, Marc</name><frequency>1</frequency></term>
+<term><name>Gennick, Jonathan</name><frequency>1</frequency></term>
+<term><name>Hawke, Constance S</name><frequency>1</frequency></term>
+<term><name>Hopgood, Adrian A</name><frequency>1</frequency></term>
+<term><name>Kaasgaard, Klaus</name><frequency>1</frequency></term>
+<term><name>Knittel, John</name><frequency>1</frequency></term>
+<term><name>Loudon, Kyle</name><frequency>1</frequency></term>
+</list>
+<list name="subject">
+<term><name>Computer file</name><frequency>35</frequency></term>
+<term><name>Computers</name><frequency>30</frequency></term>
+<term><name>Computer networks</name><frequency>22</frequency></term>
+<term><name>Computer science</name><frequency>16</frequency></term>
+<term><name>Computer graphics</name><frequency>15</frequency></term>
+<term><name>Computer security</name><frequency>15</frequency></term>
+<term><name>Operating systems</name><frequency>14</frequency></term>
+<term><name>Computer program language</name><frequency>13</frequency></term>
+<term><name>Microsoft Windows</name><frequency>13</frequency></term>
+<term><name>Computer software</name><frequency>8</frequency></term>
+<term><name>Computer systems</name><frequency>8</frequency></term>
+<term><name>Computer architecture</name><frequency>7</frequency></term>
+<term><name>Computer programs</name><frequency>6</frequency></term>
+<term><name>Internet</name><frequency>6</frequency></term>
+<term><name>Computer animation</name><frequency>5</frequency></term>
+</list>
+<list name="date">
+<term><name>2000</name><frequency>53</frequency></term>
+<term><name>2001</name><frequency>23</frequency></term>
+<term><name>1999</name><frequency>17</frequency></term>
+<term><name>1998</name><frequency>5</frequency></term>
+<term><name>2002</name><frequency>2</frequency></term>
+<term><name>1997</name><frequency>1</frequency></term>
+</list>
+</termlist>
\ No newline at end of file
diff --git a/test/test_termlist_block_2.res b/test/test_termlist_block_2.res
new file mode 100644 (file)
index 0000000..42534e3
--- /dev/null
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<settings><status>OK</status></settings>
\ No newline at end of file
diff --git a/test/test_termlist_block_3.res b/test/test_termlist_block_3.res
new file mode 100644 (file)
index 0000000..ab63fe6
--- /dev/null
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<search><status>OK</status></search>
\ No newline at end of file
diff --git a/test/test_termlist_block_4.res b/test/test_termlist_block_4.res
new file mode 100644 (file)
index 0000000..5a1147b
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<show><status>OK</status>
+<activeclients>0</activeclients>
+<merged>0</merged>
+<total>0</total>
+<start>0</start>
+<num>0</num>
+</show>
\ No newline at end of file
diff --git a/test/test_termlist_block_5.res b/test/test_termlist_block_5.res
new file mode 100644 (file)
index 0000000..4118ca9
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bytarget><status>OK</status>
+<target><id>id_ocw</id>
+<name>MIT OpenCourseWare</name>
+<hits>0</hits>
+<diagnostic>114</diagnostic>
+<records>0</records>
+<state>Client_Error</state>
+</target></bytarget>
\ No newline at end of file
diff --git a/test/test_termlist_block_6.res b/test/test_termlist_block_6.res
new file mode 100644 (file)
index 0000000..653e6e0
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<termlist><activeclients>0</activeclients>
+<list name="xtargets">
+</list>
+<list name="author">
+</list>
+<list name="subject">
+</list>
+<list name="date">
+</list>
+</termlist>
\ No newline at end of file
diff --git a/test/test_termlist_block_7.res b/test/test_termlist_block_7.res
new file mode 100644 (file)
index 0000000..42534e3
--- /dev/null
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<settings><status>OK</status></settings>
\ No newline at end of file
diff --git a/test/test_termlist_block_8.res b/test/test_termlist_block_8.res
new file mode 100644 (file)
index 0000000..ab63fe6
--- /dev/null
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<search><status>OK</status></search>
\ No newline at end of file
diff --git a/test/test_termlist_block_9.res b/test/test_termlist_block_9.res
new file mode 100644 (file)
index 0000000..53e98fc
--- /dev/null
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<show><status>OK</status>
+<activeclients>0</activeclients>
+<merged>100</merged>
+<total>1043</total>
+<start>0</start>
+<num>20</num>
+<hit>
+
+<md-title>Adobe Illustrator for the Mac</md-title>
+<md-title-remainder>fast &amp; easy</md-title-remainder>
+<md-date>2001</md-date>
+<md-author>Woodward, C. Michael</md-author><location id="id_solr" name="LOC (SOLR)">
+<md-title>Adobe Illustrator for the Mac</md-title>
+<md-title-remainder>fast &amp; easy</md-title-remainder>
+<md-date>2001</md-date>
+<md-author>Woodward, C. Michael</md-author></location>
+<relevance>600000</relevance>
+<recid>content: title adobe illustrator for the mac author woodward c michael</recid>
+</hit>
+<hit>
+
+<md-title>Advanced computer performance modeling and simulation</md-title>
+<md-date>1998</md-date><location id="id_solr" name="LOC (SOLR)">
+<md-title>Advanced computer performance modeling and simulation</md-title>
+<md-date>1998</md-date></location>
+<relevance>600000</relevance>
+<recid>content: title advanced computer performance modeling and simulation</recid>
+</hit>
+<hit>
+
+<md-title>Computer security</md-title>
+<md-title-remainder>FAA needs to improve controls over use of foreign nationals to remediate and review software : report to the Chairman, Committee on Science, House of Representatives</md-title-remainder>
+<md-date>1999</md-date>
+<md-description>&quot;GAO/AIMD-00-55.&quot;</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>Computer security</md-title>
+<md-title-remainder>FAA needs to improve controls over use of foreign nationals to remediate and review software : report to the Chairman, Committee on Science, House of Representatives</md-title-remainder>
+<md-date>1999</md-date>
+<md-description>Cover title</md-description>
+<md-description>&quot;December 1999.&quot;</md-description>
+<md-description>&quot;GAO/AIMD-00-55.&quot;</md-description>
+<md-description>&quot;B-284308&quot;--P. 1</md-description></location>
+<relevance>600000</relevance>
+<recid>content: title computer security</recid>
+</hit>
+<hit>
+
+<md-title>Cyberterrorism and computer crimes</md-title>
+<md-title-remainder>issues surrounding the establishment of an international regime</md-title-remainder>
+<md-date>2000</md-date>
+<md-author>Aldrich, Richard W</md-author>
+<md-description>&quot;April 2000.&quot;</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>Cyberterrorism and computer crimes</md-title>
+<md-title-remainder>issues surrounding the establishment of an international regime</md-title-remainder>
+<md-date>2000</md-date>
+<md-author>Aldrich, Richard W</md-author>
+<md-description>&quot;April 2000.&quot;</md-description></location>
+<relevance>600000</relevance>
+<recid>content: title cyberterrorism and computer crimes author aldrich richard w</recid>
+</hit>
+<hit>
+
+<md-title>Software design and usability</md-title>
+<md-title-remainder>talks with Bonnie Nardi, Jakob Nielsen, David Smith, Austin Henderson &amp; Jed Harris, Terry Winograd, Stephanie Rosenbaum</md-title-remainder>
+<md-date>2000</md-date>
+<md-author>Kaasgaard, Klaus</md-author><location id="id_solr" name="LOC (SOLR)">
+<md-title>Software design and usability</md-title>
+<md-title-remainder>talks with Bonnie Nardi, Jakob Nielsen, David Smith, Austin Henderson &amp; Jed Harris, Terry Winograd, Stephanie Rosenbaum</md-title-remainder>
+<md-date>2000</md-date>
+<md-author>Kaasgaard, Klaus</md-author></location>
+<relevance>550000</relevance>
+<recid>content: title software design and usability author kaasgaard klaus</recid>
+</hit>
+<hit>
+
+<md-title>Everything you need to know about the dangers of computer hacking</md-title>
+<md-date>2000</md-date>
+<md-author>Knittel, John</md-author>
+<md-description>Explains what computer hacking is, who does it, and how dangerous it can be</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>Everything you need to know about the dangers of computer hacking</md-title>
+<md-date>2000</md-date>
+<md-author>Knittel, John</md-author>
+<md-description>Explains what computer hacking is, who does it, and how dangerous it can be</md-description></location>
+<relevance>525974</relevance>
+<recid>content: title everything you need to know about the dangers of computer hacking author knittel john</recid>
+</hit>
+<hit>
+
+<md-title>Computer and Internet liability</md-title>
+<md-title-remainder>strategies, claims, and defenses</md-title-remainder>
+<md-date>2000</md-date>
+<md-author>Williams, Richard D</md-author>
+<md-description>Rev. ed. of: Law of the year 2000 problem. c1999-</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>Computer and Internet liability</md-title>
+<md-title-remainder>strategies, claims, and defenses</md-title-remainder>
+<md-date>2000</md-date>
+<md-author>Williams, Richard D</md-author>
+<md-description>Rev. ed. of: Law of the year 2000 problem. c1999-</md-description>
+<md-description>Includes index</md-description></location>
+<relevance>450000</relevance>
+<recid>content: title computer and internet liability author williams richard d</recid>
+</hit>
+<hit>
+
+<md-title>CorelDRAW 8 for Windows</md-title>
+<md-date>1998</md-date>
+<md-author>Davis, Phyllis</md-author>
+<md-description>Includes index</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>CorelDRAW 8 for Windows</md-title>
+<md-date>1998</md-date>
+<md-author>Davis, Phyllis</md-author>
+<md-description>Includes index</md-description></location>
+<relevance>450000</relevance>
+<recid>content: title coreldraw for windows author davis phyllis</recid>
+</hit>
+<hit>
+
+<md-title>Inside 3ds max 4</md-title>
+<md-date>2002</md-date>
+<md-description>The accompanying CD-ROM contains all the files needed to complete the exercises contained in the book and links to third-party programs</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>Inside 3ds max 4</md-title>
+<md-date>2002</md-date>
+<md-description>Includes index</md-description>
+<md-description>The accompanying CD-ROM contains all the files needed to complete the exercises contained in the book and links to third-party programs</md-description></location>
+<relevance>450000</relevance>
+<recid>content: title inside ds max</recid>
+</hit>
+<hit>
+
+<md-title>Quicken 2000 for the Mac</md-title>
+<md-title-remainder>the official guide</md-title-remainder>
+<md-date>2000</md-date>
+<md-author>Langer, Maria</md-author>
+<md-description>&quot;Covers Quicken deluxe 2000 for the Mac&quot;--Cover</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>Quicken 2000 for the Mac</md-title>
+<md-title-remainder>the official guide</md-title-remainder>
+<md-date>2000</md-date>
+<md-author>Langer, Maria</md-author>
+<md-description>Includes index</md-description>
+<md-description>&quot;Covers Quicken deluxe 2000 for the Mac&quot;--Cover</md-description></location>
+<relevance>450000</relevance>
+<recid>content: title quicken for the mac author langer maria</recid>
+</hit>
+<hit>
+
+<md-title>Sicherheit und Schutz im Netz</md-title>
+<md-date>1998</md-date><location id="id_solr" name="LOC (SOLR)">
+<md-title>Sicherheit und Schutz im Netz</md-title>
+<md-date>1998</md-date></location>
+<relevance>450000</relevance>
+<recid>content: title sicherheit und schutz im netz</recid>
+</hit>
+<hit>
+
+<md-title>Unix Secure Shell</md-title>
+<md-date>1999</md-date>
+<md-author>Carasik, Anne H</md-author>
+<md-description>Includes index</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>Unix Secure Shell</md-title>
+<md-date>1999</md-date>
+<md-author>Carasik, Anne H</md-author>
+<md-description>Includes index</md-description></location>
+<relevance>450000</relevance>
+<recid>content: title unix secure shell author carasik anne h</recid>
+</hit>
+<hit>
+
+<md-title>www.StopThief.net</md-title>
+<md-title-remainder>protecting your identity on the Web</md-title-remainder>
+<md-date>1999</md-date>
+<md-author>Marcella, Albert J</md-author><location id="id_solr" name="LOC (SOLR)">
+<md-title>www.StopThief.net</md-title>
+<md-title-remainder>protecting your identity on the Web</md-title-remainder>
+<md-date>1999</md-date>
+<md-author>Marcella, Albert J</md-author></location>
+<relevance>450000</relevance>
+<recid>content: title www stopthief net author marcella albert j</recid>
+</hit>
+<hit>
+
+<md-title>Eight International Conference on Computer Communications and Networks</md-title>
+<md-title-remainder>proceedings, 11-13 October 1999, Boston, Massachusetts</md-title-remainder>
+<md-date>1999</md-date>
+<md-description>&quot;IEEE catalog number 99EX370&quot;--T.p. verso</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>Eight International Conference on Computer Communications and Networks</md-title>
+<md-title-remainder>proceedings, 11-13 October 1999, Boston, Massachusetts</md-title-remainder>
+<md-date>1999</md-date>
+<md-description>&quot;IEEE catalog number 99EX370&quot;--T.p. verso</md-description></location>
+<relevance>425000</relevance>
+<recid>content: title eight international conference on computer communications and networks</recid>
+</hit>
+<hit>
+
+<md-title>Building storage networks</md-title>
+<md-date>2000</md-date>
+<md-author>Farley, Marc</md-author>
+<md-description>Includes index</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>Building storage networks</md-title>
+<md-date>2000</md-date>
+<md-author>Farley, Marc</md-author>
+<md-description>Includes index</md-description></location>
+<relevance>400000</relevance>
+<recid>content: title building storage networks author farley marc</recid>
+</hit>
+<hit>
+
+<md-title>3D games</md-title>
+<md-title-remainder>real-time rendering and software technology</md-title-remainder>
+<md-date>2001</md-date>
+<md-author>Watt, Alan H</md-author><location id="id_solr" name="LOC (SOLR)">
+<md-title>3D games</md-title>
+<md-title-remainder>real-time rendering and software technology</md-title-remainder>
+<md-date>2001</md-date>
+<md-author>Watt, Alan H</md-author></location>
+<relevance>400000</relevance>
+<recid>content: title d games author watt alan h</recid>
+</hit>
+<hit>
+
+<md-title>Mastering algorithms with C</md-title>
+<md-date>1999</md-date>
+<md-author>Loudon, Kyle</md-author>
+<md-description>&quot;Useful techniques from sorting to encryption&quot;--Cover</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>Mastering algorithms with C</md-title>
+<md-date>1999</md-date>
+<md-author>Loudon, Kyle</md-author>
+<md-description>&quot;Useful techniques from sorting to encryption&quot;--Cover</md-description>
+<md-description>Includes index</md-description></location>
+<relevance>400000</relevance>
+<recid>content: title mastering algorithms with c author loudon kyle</recid>
+</hit>
+<hit>
+
+<md-title>Oracle8i Java component programming with EJB, CORBA, and JSP</md-title>
+<md-date>2000</md-date>
+<md-author>Morisseau-Leroy, Nirva</md-author>
+<md-description>CD-ROM includes resources mentioned in the book, electronic versions of the appendices, plus sample JSP &amp; servlet programs</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>Oracle8i Java component programming with EJB, CORBA, and JSP</md-title>
+<md-date>2000</md-date>
+<md-author>Morisseau-Leroy, Nirva</md-author>
+<md-description>&quot;Covers Oracle database releases 8.1.5, 8.1.6, and 8.1.7.&quot;</md-description>
+<md-description>CD-ROM includes resources mentioned in the book, electronic versions of the appendices, plus sample JSP &amp; servlet programs</md-description></location>
+<relevance>400000</relevance>
+<recid>content: title oracle i java component programming with ejb corba and jsp author morisseau leroy nirva</recid>
+</hit>
+<hit>
+
+<md-title>Oracle SQL*Plus</md-title>
+<md-title-remainder>pocket reference</md-title-remainder>
+<md-date>2000</md-date>
+<md-author>Gennick, Jonathan</md-author>
+<md-description>&quot;Guide to SQL*Plus syntax&quot;--cover</md-description><location id="id_solr" name="LOC (SOLR)">
+<md-title>Oracle SQL*Plus</md-title>
+<md-title-remainder>pocket reference</md-title-remainder>
+<md-date>2000</md-date>
+<md-author>Gennick, Jonathan</md-author>
+<md-description>&quot;Covers Oracle8i&quot;--cover</md-description>
+<md-description>&quot;Guide to SQL*Plus syntax&quot;--cover</md-description></location>
+<relevance>400000</relevance>
+<recid>content: title oracle sql plus author gennick jonathan</recid>
+</hit>
+<hit>
+
+<md-title>Programming Web graphics with PERL and GNU software</md-title>
+<md-date>1999</md-date>
+<md-author>Wallace, Shawn P</md-author><location id="id_solr" name="LOC (SOLR)">
+<md-title>Programming Web graphics with PERL and GNU software</md-title>
+<md-date>1999</md-date>
+<md-author>Wallace, Shawn P</md-author></location>
+<relevance>400000</relevance>
+<recid>content: title programming web graphics with perl and gnu software author wallace shawn p</recid>
+</hit>
+</show>
\ No newline at end of file