001 /** 002 * 003 * Copyright 2004 Protique Ltd 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 * 017 **/ 018 package org.codehaus.activesoap.handler.xstream; 019 020 import org.codehaus.activesoap.RestClient; 021 import org.codehaus.activesoap.RestService; 022 import org.codehaus.activesoap.SoapClient; 023 import org.codehaus.activesoap.SoapService; 024 import org.codehaus.activesoap.transport.LocalTransportClient; 025 import org.codehaus.activesoap.transport.TransportClient; 026 027 /** 028 * A helper class for creating XStreams centric REST and SOAP clients 029 * 030 * @version $Revision: 1.2 $ 031 */ 032 public class XStreamHelper { 033 034 public static RestClient createRestClient(TransportClient transportClient) { 035 RestService service = new RestService(); 036 RestClient client = new RestClient(transportClient, service); 037 useXStream(client); 038 return client; 039 } 040 041 public static SoapClient createSoapClient(TransportClient transportClient) { 042 SoapService service = new SoapService(); 043 SoapClient client = new SoapClient(transportClient, service); 044 useXStream(client); 045 return client; 046 } 047 048 public static RestClient newLocalRestClient(RestService service) { 049 RestClient client = new RestClient(new LocalTransportClient(service), service); 050 useXStream(client); 051 return client; 052 } 053 054 public static SoapClient newLocalSoapClient(SoapService service) { 055 SoapClient client = new SoapClient(new LocalTransportClient(service), service); 056 useXStream(client); 057 return client; 058 } 059 060 /** 061 * Configures the given {@link RestClient} to use XStream as the default 062 * client side marshalling layer 063 */ 064 public static void useXStream(RestClient client) { 065 client.setClientHandler(new XStreamClientHandler()); 066 } 067 068 }