package org.opennaas.extensions.ofertie.ncl.notification.api;
/*
* #%L
* OpenNaaS :: OFERTIE :: NCL components
* %%
* Copyright (C) 2007 - 2014 FundaciĆ³ Privada i2CAT, Internet i InnovaciĆ³ a Catalunya
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import org.apache.cxf.common.util.ProxyClassLoader;
import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean;
import org.apache.cxf.jaxrs.client.WebClient;
/**
*
* @author Julio Carlos Barrera
*
*/
public class NCLNotificationAPIClientFactory {
public static INCLNotificationAPI createClient(String url) {
JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean();
ProxyClassLoader classLoader = new ProxyClassLoader();
bean.setAddress(url);
bean.setResourceClass(INCLNotificationAPI.class);
bean.setClassLoader(classLoader);
INCLNotificationAPI cxfClient = (INCLNotificationAPI) bean.create();
// By enabling async HTTP conduit, as side-effect, support for HTTP DELETE methods with body is available.
// https://issues.apache.org/jira/browse/CXF-5337
WebClient.getConfig(cxfClient).getRequestContext().put("use.async.http.conduit", true);
return cxfClient;
}
}