/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.vertical.adminweb;
import com.enonic.cms.core.resource.ResourceFile;
import com.enonic.cms.core.resource.ResourceKey;
import com.enonic.cms.framework.util.HttpServletUtil;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.MessageFormat;
public class ResourceDataServlet
extends AbstractAdminwebServlet
{
public void doGet( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
String keyStr = request.getParameter( "id" );
if ( keyStr != null && keyStr.length() > 0 )
{
ResourceKey key = ResourceKey.from( keyStr );
ResourceFile res = resourceService.getResourceFile( key );
if ( res != null )
{
response.setContentType( res.getMimeType() );
HttpServletUtil.copyNoCloseOut( res.getDataAsInputStream(), response.getOutputStream() );
}
else
{
String msg = "Resource not found: {0}";
VerticalAdminLogger.warn(msg, keyStr, null );
response.sendError( HttpServletResponse.SC_NOT_FOUND, MessageFormat.format( msg, keyStr ) );
}
}
else
{
String message = "Resource key not specified.";
VerticalAdminLogger.warn(message );
response.sendError( HttpServletResponse.SC_NOT_FOUND, message );
}
}
}