package com.limegroup.gnutella; import java.io.IOException; import java.io.InputStream; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.http.HttpException; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.params.HttpParams; import org.limewire.http.httpclient.LimeHttpClient; import org.limewire.promotion.AbstractPromotionBinderRequestor; import org.limewire.promotion.PromotionBinderFactory; import com.google.inject.Inject; import com.google.inject.Singleton; import com.limegroup.gnutella.util.LimeWireUtils; @Singleton public class PromotionBinderRequestorImpl extends AbstractPromotionBinderRequestor { private final static Log LOG = LogFactory.getLog(PromotionBinderRequestorImpl.class); private final LimeHttpClient exe; private final ApplicationServices applicationServices; @Inject public PromotionBinderRequestorImpl(PromotionBinderFactory binderFactory, LimeHttpClient exe, ApplicationServices applicationServices) { super(binderFactory); this.exe = exe; this.applicationServices = applicationServices; } @Override protected void error(Exception e) { LOG.error("Error processing promotion binder", e); } @Override protected String getUserAgent() { return LimeWireUtils.getHttpServer(); } @Override protected InputStream makeRequest(final HttpPost post, HttpParams params)throws HttpException, IOException { HttpResponse response = exe.execute(post); return response.getEntity().getContent(); } @Override public String alterUrl(String url) { return LimeWireUtils.addLWInfoToUrl(url, applicationServices.getMyGUID()); } }