Changeset 6900


Ignore:
Timestamp:
01/12/16 11:20:59 (8 years ago)
Author:
Oliver Schonefeld
Message:
  • trying to fix use of wrong namespaces in responses
File:
1 edited

Legend:

Unmodified
Added
Removed
  • SRUServer/trunk/src/main/java/eu/clarin/sru/server/SRUServer.java

    r6897 r6900  
    228228
    229229            // diagnostics
    230             writeDiagnosticList(out, ns, request.getDiagnostics());
     230            writeDiagnosticList(out, ns, ns.getResponseNS(),
     231                    request.getDiagnostics());
    231232
    232233            // extraResponseData
     
    359360
    360361            // diagnostics
    361             writeDiagnosticList(out, ns, request.getDiagnostics());
     362            writeDiagnosticList(out, ns, ns.getScanNS(), request.getDiagnostics());
    362363
    363364            // extraResponseData
     
    564565
    565566            // diagnostics
    566             writeDiagnosticList(out, ns, request.getDiagnostics());
     567            writeDiagnosticList(out, ns, ns.getResponseNS(),
     568                    request.getDiagnostics());
    567569
    568570            // extraResponseData
     
    639641        }
    640642
    641         out.setPrefix(ns.getResponsePrefix(), ns.getResponseNS());
    642643        switch (operation) {
    643644        case EXPLAIN:
     645            out.setPrefix(ns.getResponsePrefix(), ns.getResponseNS());
    644646            out.writeStartElement(ns.getResponseNS(), "explainResponse");
     647            out.writeNamespace(ns.getResponsePrefix(), ns.getResponseNS());
     648            // version
     649            writeVersion(out, ns.getResponseNS(), version);
    645650            break;
    646651        case SCAN:
    647             out.writeStartElement(ns.getResponseNS(), "scanResponse");
     652            out.setPrefix(ns.getScanPrefix(), ns.getScanNS());
     653            out.writeStartElement(ns.getScanNS(), "scanResponse");
     654            out.writeNamespace(ns.getScanPrefix(), ns.getScanNS());
     655            // version
     656            writeVersion(out, ns.getScanNS(), version);
    648657            break;
    649658        case SEARCH_RETRIEVE:
     659            out.setPrefix(ns.getResponsePrefix(), ns.getResponseNS());
    650660            out.writeStartElement(ns.getResponseNS(), "searchRetrieveResponse");
     661            out.writeNamespace(ns.getResponsePrefix(), ns.getResponseNS());
     662            // version
     663            writeVersion(out, ns.getResponseNS(), version);
    651664            break;
    652665        }
    653         out.writeNamespace(ns.getResponsePrefix(), ns.getResponseNS());
    654 
    655         // version
    656         writeVersion(out, ns, version);
     666
    657667    }
    658668
     
    701711            // 'explain' requires a complete explain record ...
    702712            writeExplainRecord(out, ns, request);
     713            writeDiagnosticList(out, ns, ns.getResponseNS(), diagnotics);
    703714            break;
    704715        case SCAN:
    705716            // 'scan' fortunately does not need any elements ...
     717            writeDiagnosticList(out, ns, ns.getScanNS(), diagnotics);
    706718            break;
    707719        case SEARCH_RETRIEVE:
     
    710722            out.writeCharacters("0");
    711723            out.writeEndElement(); // "numberOfRecords" element
     724            writeDiagnosticList(out, ns, ns.getResponseNS(), diagnotics);
    712725            break;
    713726        }
    714         writeDiagnosticList(out, ns, diagnotics);
    715727        endResponse(out);
    716728    }
     
    718730
    719731    private void writeDiagnosticList(SRUXMLStreamWriter out, SRUNamespaces ns,
    720             List<SRUDiagnostic> diagnostics) throws XMLStreamException {
     732            String envelopeNs, List<SRUDiagnostic> diagnostics)
     733                    throws XMLStreamException {
    721734        if ((diagnostics != null) && !diagnostics.isEmpty()) {
    722735            out.setPrefix(ns.getDiagnosticPrefix(), ns.getDiagnosticNS());
    723             out.writeStartElement(ns.getDiagnosticNS(), "diagnostics");
     736            out.writeStartElement(envelopeNs, "diagnostics");
    724737            out.writeNamespace(ns.getDiagnosticPrefix(), ns.getDiagnosticNS());
    725738            for (SRUDiagnostic diagnostic : diagnostics) {
     
    952965        // echoedExplainRequest/version
    953966        if (request.getRawVersion() != null) {
    954             writeVersion(out, ns, request.getRawVersion());
     967            writeVersion(out, ns.getResponseNS(), request.getRawVersion());
    955968        }
    956969
     
    979992        // echoedScanRequest/version
    980993        if (request.getRawVersion() != null) {
    981             writeVersion(out, ns, request.getRawVersion());
     994            writeVersion(out, ns.getResponseNS(), request.getRawVersion());
    982995        }
    983996
     
    10291042        // echoedSearchRetrieveRequest/version
    10301043        if (request.getRawVersion() != null) {
    1031             writeVersion(out, ns, request.getRawVersion());
     1044            writeVersion(out, ns.getResponseNS(), request.getRawVersion());
    10321045        }
    10331046
     
    11591172
    11601173
    1161     private void writeVersion(SRUXMLStreamWriter out, SRUNamespaces ns,
     1174    private void writeVersion(SRUXMLStreamWriter out, String envelopeNs,
    11621175            SRUVersion version) throws XMLStreamException {
    1163         out.writeStartElement(ns.getResponseNS(), "version");
     1176        out.writeStartElement(envelopeNs, "version");
    11641177        switch (version) {
    11651178        case VERSION_1_1:
Note: See TracChangeset for help on using the changeset viewer.