private DownloadResponse constructResponse( JnlpResource jnlpres, DownloadRequest dreq )
            throws IOException
    {
        String path = jnlpres.getPath();
        if ( jnlpres.isJnlpFile() )
        {
            // It is a JNLP file. It need to be macro-expanded, so it is handled differently
            boolean supportQuery = JarDiffHandler.isJavawsVersion( dreq, "1.5+" );
            _log.addDebug( "SupportQuery in Href: " + supportQuery );

            // only support query string in href for 1.5 and above
            if ( supportQuery )
            {
                return _jnlpFileHandler.getJnlpFileEx( jnlpres, dreq );
            }
            else
            {
                return _jnlpFileHandler.getJnlpFile( jnlpres, dreq );
            }
        }

        // Check if a JARDiff can be returned
        if ( dreq.getCurrentVersionId() != null && jnlpres.isJarFile() )
        {
            DownloadResponse response = _jarDiffHandler.getJarDiffEntry( _resourceCatalog, dreq, jnlpres );
            if ( response != null )
            {
                _log.addInformational( "servlet.log.info.jardiff.response" );
                return response;
            }
        }

        // check and see if we can use pack resource
        JnlpResource jr =
                new JnlpResource( getServletContext(), jnlpres.getName(), jnlpres.getVersionId(), jnlpres.getOSList(),
                                  jnlpres.getArchList(), jnlpres.getLocaleList(), jnlpres.getPath(),
                                  jnlpres.getReturnVersionId(), dreq.getEncoding() );

        _log.addDebug( "Real resource returned: " + jr );

        // Return WAR file resource
        return DownloadResponse.getFileDownloadResponse( jr.getResource(), jr.getMimeType(), jr.getLastModified(),
                                                         jr.getReturnVersionId() );
    }
private DownloadResponse constructResponse ( JnlpResource jnlpres , DownloadRequest dreq ) throws IOException { String path = jnlpres . getPath ( ) ; if ( jnlpres . isJnlpFile ( ) ) { boolean supportQuery = JarDiffHandler . isJavawsVersion ( dreq , "1.5+" ) ; _log . addDebug ( "SupportQuery in Href: " + supportQuery ) ; if ( supportQuery ) { return _jnlpFileHandler . getJnlpFileEx ( jnlpres , dreq ) ; } else { return _jnlpFileHandler . getJnlpFile ( jnlpres , dreq ) ; } } if ( dreq . getCurrentVersionId ( ) != null && jnlpres . isJarFile ( ) ) { DownloadResponse response = _jarDiffHandler . getJarDiffEntry ( _resourceCatalog , dreq , jnlpres ) ; if ( response != null ) { _log . addInformational ( "servlet.log.info.jardiff.response" ) ; return response ; } } JnlpResource jr = new JnlpResource ( getServletContext ( ) , jnlpres . getName ( ) , jnlpres . getVersionId ( ) , jnlpres . getOSList ( ) , jnlpres . getArchList ( ) , jnlpres . getLocaleList ( ) , jnlpres . getPath ( ) , jnlpres . getReturnVersionId ( ) , dreq . getEncoding ( ) ) ; _log . addDebug ( "Real resource returned: " + jr ) ; return DownloadResponse . getFileDownloadResponse ( jr . getResource ( ) , jr . getMimeType ( ) , jr . getLastModified ( ) , jr . getReturnVersionId ( ) ) ; }
Given a DownloadPath and a DownloadRequest, it constructs the data stream to return
to the requester