/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.portal.datasource.handler.util; import java.io.ByteArrayInputStream; import org.jdom.Document; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.enonic.cms.framework.util.JDOMUtil; import com.enonic.cms.core.http.HTTPService; import com.enonic.cms.core.portal.datasource.handler.DataSourceRequest; import com.enonic.cms.core.portal.datasource.handler.base.ParamsDataSourceHandler; @Component("ds.GetUrlAsXmlHandler") public final class GetUrlAsXmlHandler extends ParamsDataSourceHandler<GetUrlAsXmlParams> { private HTTPService httpService; private final static String URL_NO_RESULT = "<noresult/>"; public GetUrlAsXmlHandler() { super( "getUrlAsXml", GetUrlAsXmlParams.class ); } @Override protected Document handle( final DataSourceRequest req, final GetUrlAsXmlParams params ) throws Exception { final byte[] data = this.httpService.getURLAsBytes( params.url, params.timeout, params.readTimeout, "application/xhtml+xml,application/xml,text/xml" ); if ( data == null ) { return JDOMUtil.parseDocument( URL_NO_RESULT ); } return JDOMUtil.parseDocument( new ByteArrayInputStream( data ) ); } @Autowired public void setHttpService( final HTTPService httpService ) { this.httpService = httpService; } }