001/** 002 * 003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved. 004 * 005 * This library is free software; you can redistribute it and/or 006 * modify it under the terms of the GNU Lesser General Public 007 * License as published by the Free Software Foundation; either 008 * version 2.1 of the License, or (at your option) any later version. 009 * 010 * This library is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 013 * Lesser General Public License for more details. 014 * 015 * You should have received a copy of the GNU Lesser General Public 016 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 017 * 018 **/ 019package lucee.commons.net.http.httpclient4; 020 021import lucee.commons.lang.ClassUtil; 022import lucee.commons.lang.ExceptionUtil; 023import lucee.runtime.exp.ApplicationException; 024import lucee.runtime.exp.PageException; 025import lucee.runtime.op.Caster; 026 027import org.apache.http.client.methods.HttpEntityEnclosingRequestBase; 028 029public class HTTPPatchFactory { 030 031 public static HttpEntityEnclosingRequestBase getHTTPPatch(String url) throws PageException { 032 // try to load the class, perhaps class does not exists with older jars 033 Class clazz = ClassUtil.loadClass( 034 HttpEntityEnclosingRequestBase.class.getClassLoader(), 035 "org.apache.http.client.methods.HttpPatch",null); 036 if(clazz==null) throw new ApplicationException("cannot load class [org.apache.http.client.methods.HttpPatch], you have to update your apache-commons-http*** jars"); 037 try { 038 return (HttpEntityEnclosingRequestBase) ClassUtil.loadInstance(clazz,new Object[]{url}); 039 } 040 catch (Throwable t) { 041 throw Caster.toPageException(t); 042 } 043 044 045 //FUTURE if we have the new jar for sure return new HttpPatch(url); 046 } 047}