1 25 package org.snipsnap.server; 26 27 import org.apache.xmlrpc.DefaultXmlRpcTransport; 28 import org.apache.xmlrpc.XmlRpcClient; 29 import org.apache.xmlrpc.XmlRpcClientRequest; 30 import org.apache.xmlrpc.XmlRpcException; 31 import org.apache.xmlrpc.XmlRpcRequest; 32 import org.apache.xmlrpc.XmlRpcTransport; 33 34 import java.io.IOException ; 35 import java.net.MalformedURLException ; 36 import java.net.URL ; 37 import java.util.Hashtable ; 38 import java.util.Vector ; 39 40 public class AdminXmlRpcClient { 41 protected XmlRpcClient xmlRpcClient = null; 42 private DefaultXmlRpcTransport xmlRpcTransport = null; 43 44 public AdminXmlRpcClient(String url, String user, String password) throws MalformedURLException { 45 this(new URL (url), user, password); 46 } 47 48 public AdminXmlRpcClient(URL url, String user, String password) throws MalformedURLException { 49 URL xmlRpcUrl = new URL (url, "RPC2"); 50 xmlRpcClient = new XmlRpcClient(xmlRpcUrl); 51 xmlRpcTransport = new DefaultXmlRpcTransport(xmlRpcUrl); 52 xmlRpcTransport.setBasicAuthentication(user != null ? user : "admin", password != null ? password : ""); 53 } 54 55 public Object execute(String method, Vector args) throws XmlRpcException, IOException { 56 return xmlRpcClient.execute(new XmlRpcRequest(method, args), xmlRpcTransport); 57 } 58 59 public Hashtable getApplications() throws XmlRpcException, IOException { 60 Vector args = new Vector (); 61 return (Hashtable )execute("getApplications", args); 62 } 63 64 public void shutdown() throws XmlRpcException, IOException { 65 xmlRpcClient.execute("shutdown", new Vector ()); 66 } 67 68 public URL install(String name, String host, String port, String path) throws XmlRpcException, IOException { 69 Vector args = new Vector (); 71 args.addElement(name); 72 args.addElement(host); 73 args.addElement(port); 74 args.addElement(path); 75 return new URL ((String ) execute("install", args)); 76 } 77 78 public void delete(String name, boolean backup) throws XmlRpcException, IOException { 79 Vector args = new Vector (); 81 args.addElement(name); 82 args.addElement(new Boolean (backup)); 83 execute("delete", args); 84 } 85 } 86 | Popular Tags |