Package org.openxri.resolve

Examples of org.openxri.resolve.MimeType


           
            String sAccept = request.getHeader(Tags.HEADER_ACCEPT);
            // initialize the following input parameters to proxy server in addition to
            // addition flags refs, trust & sep
            MimeType resolutionMediaType = null;
            String serviceResMediaType = null;
            String serviceType = null// this always comes from http get query
           
            /*
             * We expect Accept header of format and would contain only expected variables and values
             * The general format of aceept header is: <mediatype>[;name=value]*[,<mediatype>[;named=value]*]
             * 1. If multiple mediatypes appears the proxy server shoud pick the first one.
             * 2. If mediatype is one of the application/xrd(s)+xml or text/uri-list then ResolutionMediaType=mediatype
             * and ServiceMediaType becomes null
             * 3. If mediatype doesn't match with applciation/xrd(s) or text/uri-list ResolutionMediaType=null
             * and ServiceMediaType = mediatype
             * if accept header is null then ResolutionMediaType and ServiceMediaType = null (used loose constraint)
             * 4. In any case the proxy query parameters _xrd_r and _xrd_m takes higher precendence over accept header
             */
            if (sAccept != null ){
              StringTokenizer tokenizer = new StringTokenizer(sAccept, ",");
              while (tokenizer.hasMoreTokens() ){
                String token = (String)tokenizer.nextToken();
               
                MimeType mType = MimeType.parse(token);
                if (mType == null || mType.getType() == null || mType.getType().length() == 0)
                  continue; // ignore
               
              if (mType.isValidXriResMediaType()) {
                resolutionMediaType = mType;
                serviceResMediaType = null;
                isDumbBrowser = false;
              }
              else {
                resolutionMediaType = null;
                serviceResMediaType = mType.toString();
              }
              break;
              }
            }

            QueryParams qp = parseQuery(request);


            if (qp.xrdR != null) {
              if (qp.xrdR.trim().length() == 0) {
                // parameter exists, but is empty
                resolutionMediaType = null;
              }
              else {
                MimeType mType = MimeType.parse(qp.xrdR);
              if (mType != null && mType.getType() != null && mType.getType().length() > 0) {
                // this overrides earlier value (that might be in Accept: header)
                resolutionMediaType = mType;
              }
              }
            }
View Full Code Here


            }
          }
          else {
            //// authority resolution only
            if(resMediaType == null) {
              resMediaType = new MimeType(MimeType.XRDS_XML);
            }
           
            if (resMediaType.isType(MimeType.XRDS_XML)) {
              xrds = resolver.resolveAuthToXRDS(oXRI, trustType, refs);
              sendResponse(response, isDumbBrowser, resMediaType.getType(), xrds.toString(), trustType);
View Full Code Here


      String sAccept = request.getHeader(Tags.HEADER_ACCEPT);
      // initialize the following input parameters to proxy server in addition to
      // addition flags refs, trust & sep
      MimeType resolutionMediaType = null;
      String serviceResMediaType = null;
      String serviceType = null// this always comes from http get query

      /*
       * We expect Accept header of format and would contain only expected variables and values
       * The general format of aceept header is: <mediatype>[;name=value]*[,<mediatype>[;named=value]*]
       * 1. If multiple mediatypes appears the proxy server shoud pick the first one.
       * 2. If mediatype is one of the application/xrd(s)+xml or text/uri-list then ResolutionMediaType=mediatype
       * and ServiceMediaType becomes null
       * 3. If mediatype doesn't match with applciation/xrd(s) or text/uri-list ResolutionMediaType=null
       * and ServiceMediaType = mediatype
       * if accept header is null then ResolutionMediaType and ServiceMediaType = null (used loose constraint)
       * 4. In any case the proxy query parameters _xrd_r and _xrd_m takes higher precendence over accept header
       */
      if (sAccept != null ){
        StringTokenizer tokenizer = new StringTokenizer(sAccept, ",");
        while (tokenizer.hasMoreTokens() ){
          String token = (String)tokenizer.nextToken();

          MimeType mType = MimeType.parse(token);
          if (mType == null || mType.getType() == null || mType.getType().length() == 0)
            continue; // ignore

          if (mType.isValidXriResMediaType()) {
            resolutionMediaType = mType;
            serviceResMediaType = null;
            isDumbBrowser = false;
          }
          else {
            resolutionMediaType = null;
            serviceResMediaType = mType.toString();
          }
          break;
        }
      }

      QueryParams qp = parseQuery(request);


      if (qp.xrdR != null) {
        if (qp.xrdR.trim().length() == 0) {
          // parameter exists, but is empty
          resolutionMediaType = null;
        }
        else {
          MimeType mType = MimeType.parse(qp.xrdR);
          if (mType != null && mType.getType() != null && mType.getType().length() > 0) {
            // this overrides earlier value (that might be in Accept: header)
            resolutionMediaType = mType;
          }
        }
      }
View Full Code Here

        }
      }
      else {
        //// authority resolution only
        if(resMediaType == null) {
          resMediaType = new MimeType(MimeType.XRDS_XML);
        }

        if (resMediaType.isType(MimeType.XRDS_XML)) {
          xrds = resolver.resolveAuthToXRDS(oXRI, trustType, refs);
          sendResponse(response, isDumbBrowser, resMediaType.getType(), xrds.toString(), trustType);
View Full Code Here


      String sAccept = request.getHeader(Tags.HEADER_ACCEPT);
      // initialize the following input parameters to proxy server in addition to
      // addition flags refs, trust & sep
      MimeType resolutionMediaType = null;
      String serviceResMediaType = null;
      String serviceType = null// this always comes from http get query

      /*
       * We expect Accept header of format and would contain only expected variables and values
       * The general format of aceept header is: <mediatype>[;name=value]*[,<mediatype>[;named=value]*]
       * 1. If multiple mediatypes appears the proxy server shoud pick the first one.
       * 2. If mediatype is one of the application/xrd(s)+xml or text/uri-list then ResolutionMediaType=mediatype
       * and ServiceMediaType becomes null
       * 3. If mediatype doesn't match with applciation/xrd(s) or text/uri-list ResolutionMediaType=null
       * and ServiceMediaType = mediatype
       * if accept header is null then ResolutionMediaType and ServiceMediaType = null (used loose constraint)
       * 4. In any case the proxy query parameters _xrd_r and _xrd_m takes higher precendence over accept header
       */
      if (sAccept != null ){
        StringTokenizer tokenizer = new StringTokenizer(sAccept, ",");
        while (tokenizer.hasMoreTokens() ){
          String token = (String)tokenizer.nextToken();

          MimeType mType = MimeType.parse(token);
          if (mType == null || mType.getType() == null || mType.getType().length() == 0)
            continue; // ignore

          if (mType.isValidXriResMediaType()) {
            resolutionMediaType = mType;
            serviceResMediaType = null;
            isDumbBrowser = false;
          }
          else {
            resolutionMediaType = null;
            serviceResMediaType = mType.toString();
          }
          break;
        }
      }

      QueryParams qp = parseQuery(request);


      if (qp.xrdR != null) {
        if (qp.xrdR.trim().length() == 0) {
          // parameter exists, but is empty
          resolutionMediaType = null;
        }
        else {
          MimeType mType = MimeType.parse(qp.xrdR);
          if (mType != null && mType.getType() != null && mType.getType().length() > 0) {
            // this overrides earlier value (that might be in Accept: header)
            resolutionMediaType = mType;
          }
        }
      }
View Full Code Here

        }
      }
      else {
        //// authority resolution only
        if(resMediaType == null) {
          resMediaType = new MimeType(MimeType.XRDS_XML);
        }

        if (resMediaType.isType(MimeType.XRDS_XML)) {
          xrds = resolver.resolveAuthToXRDS(oXRI, trustType, refs);
          sendResponse(response, isDumbBrowser, resMediaType.getType(), xrds.toString(), trustType);
View Full Code Here

      }
      log.trace("Auto-correction not needed");

      // initialize the following input parameters to proxy server in addition to
      // addition flags refs, trust & sep
      MimeType resolutionMediaType = null;
      String serviceResMediaType = null;
      String serviceType = null// this always comes from HTTP get query

      serviceResMediaType = getServiceMediaTypeFromAcceptHeader(request);
      QueryParams qp = parseQuery(request);

      if (qp.xrdR != null && qp.xrdR.trim().length() > 0) {
        MimeType mType = MimeType.parse(qp.xrdR);
        if (mType != null && mType.getType() != null && mType.getType().length() > 0) {
          resolutionMediaType = mType;
        }
      }

      if (qp.xrdT != null && (qp.xrdT.trim().length() == 0))
View Full Code Here

    while (acceptValues.hasMoreElements()) {
      String headerValue = (String)acceptValues.nextElement();
      String[] v = headerValue.split("\\s*,\\s*");
      for (int i = 0; i < v.length; i++) {
        log.trace("getServiceMediaTypeFromHeader: checking header '" + v[i] + "'");
        MimeType m = MimeType.parse(v[i]);
        ss.add(m);
      }
    }
   
    if (ss.size() > 0) {
      MimeType m = (MimeType)ss.first();
      return m.getType();
    }
    return null;
  }
View Full Code Here

        }
      }
      else {
        //// authority resolution only
        if(resMediaType == null) {
          resMediaType = new MimeType(MimeType.XRDS_XML);
        }

        if (resMediaType.isType(MimeType.XRDS_XML)) {
//          xrds = this.resolver.resolveAuthToXRDS(oXRI, trustType, refs);
          xrds = this.resolver.resolveAuthToXRDS(oXRI, flags, state);
View Full Code Here

        + ";refs" + Boolean.toString(followRefs);
     
      if (msProxyURI != null) {
        mediaTypeStr += (";sep" + Boolean.toString(doSEP));
      }
      MimeType resMediaType = MimeType.parse(mediaTypeStr);

      ResolverState state = new ResolverState();
      XRDS xrds = null;
        XRD xrd = null;
      try {
        if (doSEP) {
          if (resMediaType.isType(MimeType.URI_LIST)) {
            String  text = resolver.resolveSEPToTextURIList(msTargetXRI.toString(), trustType, xrdT, xrdM, followRefs, state);
            if (text.length() <= 0)
              sOutput.append("ERROR: SEP_NOT_FOUND(code=241): no url found\n");
            else
              sOutput.append(text);
          }
          else if (resMediaType.isType(MimeType.XRDS_XML)) {
            xrds = resolver.resolveSEPToXRDS(msTargetXRI, trustType, xrdT, xrdM, followRefs, state);
            sOutput.append(xrds.toString());
          }
          else if (resMediaType.isType(MimeType.XRD_XML)) {
            xrd = resolver.resolveSEPToXRD(msTargetXRI, trustType, xrdT, xrdM, followRefs, state);
            sOutput.append(xrd.toResultString());
          }
          else {
            sOutput.append("Unknown resolution media type (sep=true)");
          }
        }
        else {
          if (resMediaType.isType(MimeType.XRDS_XML)) {
            xrds = resolver.resolveAuthToXRDS(msTargetXRI, trustType, followRefs, state);
            sOutput.append(xrds.toString());
          }
          else if (resMediaType.isType(MimeType.XRD_XML)) {
            xrd = resolver.resolveAuthToXRD(msTargetXRI, trustType, followRefs, state);
            sOutput.append(xrd.toString());
          }
          else if (resMediaType.isType(MimeType.URI_LIST)) {
            // ignore (must do SEP when text/uri-list is specified)
            sOutput.append("ERROR: text/uri-list must only be used with service selection (sep=true)\n");
          }
          else {
            sOutput.append("ERROR: Unknown resolution media type (sep=false)");
          }
        }
      }
        catch (PartialResolutionException pre) {

             xrds = pre.getPartialXRDS();
            xrd = xrds.getFinalXRD();
            
             if (resMediaType == null || resMediaType.isType(MimeType.URI_LIST)) {
               sOutput.append("ERROR: resolution failed. Partial XRDS:\n" + xrds.toString());
             }
             else if (resMediaType.isType(MimeType.XRDS_XML)) {
               sOutput.append("ERROR: resolution failed. Partial XRDS:\n" + xrds.toString());
             }
             else if (resMediaType.isType(MimeType.XRD_XML)) {
               sOutput.append("ERROR: resolution failed. Partial XRDS:\n" + xrds.toString());
             }
        }
        finally {
          if (mbIsVerbose)
View Full Code Here

TOP

Related Classes of org.openxri.resolve.MimeType

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.