*) adding new soap service for peer administration

- configure dht transfer properties
   - configure remote proxy
   - configure peer name / peer port
   - configure admin username + pwd
   - get peer version information
   - set/get peer configuration settings
   - shutdown peer
*) new function to get the opensearch description via soap call

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@2816 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
theli 19 years ago
parent ce237aefad
commit ef912811f1

@ -0,0 +1,427 @@
//AdminService.java
//------------------------
//part of YaCy
//(C) by Michael Peter Christen; mc@anomic.de
//first published on http://www.anomic.de
//Frankfurt, Germany, 2005
//
//this file was contributed by Martin Thelian
//last major change: $LastChangedDate$ by $LastChangedBy$
//Revision: $LastChangedRevision$
//
//This program is free software; you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation; either version 2 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
//Using this software in any meaning (reading, learning, copying, compiling,
//running) means that you agree that the Author(s) is (are) not responsible
//for cost, loss of data or any harm that may be caused directly or indirectly
//by usage of this softare or this documentation. The usage of this software
//is on your own risk. The installation and usage (starting/running) of this
//software may allow other people or application to access your computer and
//any attached devices and is highly dependent on the configuration of the
//software which must be done by the user of the software; the author(s) is
//(are) also not responsible for proper configuration and usage of the
//software, even if provoked by documentation provided together with
//the software.
//
//Any changes to this file according to the GPL as documented in the file
//gpl.txt aside this file in the shipment you received can be done to the
//lines that follows this copyright notice here, but changes must not be
//done inside the copyright notive above. A re-distribution must contain
//the intact and unchanged copyright notice.
//Contributions and changes to the program code must be marked as such.
package de.anomic.soap.services;
import java.util.ArrayList;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.axis.AxisFault;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import de.anomic.http.httpRemoteProxyConfig;
import de.anomic.plasma.plasmaSwitchboard;
import de.anomic.server.serverCore;
import de.anomic.server.serverObjects;
import de.anomic.soap.AbstractService;
import de.anomic.yacy.yacyCore;
import de.anomic.yacy.yacySeed;
public class AdminService extends AbstractService {
private static final String TEMPLATE_CONFIG_XML = "xml/config_p.xml";
private static final String TEMPLATE_VERSION_XML = "xml/version.xml";
/**
* This function can be used to set a configuration option
* @param key the name of the option
* @param value the value of the option as String
* @throws AxisFault if authentication failed
*/
public void setConfigProperty(String key, String value) throws AxisFault {
// Check for errors
if ((key == null)||(key.length() == 0)) throw new IllegalArgumentException("Key must not be null or empty.");
// extracting the message context
extractMessageContext(true);
// add key to switchboard
if (value == null) value = "";
this.switchboard.setConfig(key,value);
}
/**
* This function can be used to set multiple configuration option
* @param keys an array containing the names of all options
* @param values an array containing the values of all options
* @throws AxisFault if authentication failed
* @throws IllegalArgumentException if key.length != value.length
*/
public void setProperties(String[] keys, String values[]) throws AxisFault{
// Check for errors
if ((keys == null)||(keys.length == 0)) throw new IllegalArgumentException("Key array must not be null or empty.");
if ((values == null)||(values.length == 0)) throw new IllegalArgumentException("Values array must not be null or empty.");
if (keys.length != values.length) throw new IllegalArgumentException("Invalid input. " + keys.length + " keys but " + values.length + " values received.");
// extracting the message context
extractMessageContext(true);
for (int i=0; i < keys.length; i++) {
// get the key
String nextKey = keys[i];
if ((nextKey == null)||(nextKey.length() == 0)) throw new IllegalArgumentException("Key at position " + i + " was null or empty.");
// get the value
String nextValue = values[i];
if (nextValue == null) nextValue = "";
// save the value
this.switchboard.setConfig(nextKey,nextValue);
}
}
/**
* This function can be used to geht the value of a single configuration option
* @param key the name of the option
* @return the value of the option as string
* @throws AxisFault if authentication failed
*/
public String getConfigProperty(String key) throws AxisFault {
// Check for errors
if ((key == null)||(key.length() == 0)) throw new IllegalArgumentException("Key must not be null or empty.");
// extracting the message context
extractMessageContext(true);
// get the config property
return this.switchboard.getConfig(key,null);
}
/**
* This function can be used to query the value of multiple configuration options
* @param keys an array containing the names of the configuration options to query
* @return an array containing the values of the configuration options as string
* @throws AxisFault if authentication failed
*/
public String[] getConfigProperties(String[] keys) throws AxisFault {
// Check for errors
if ((keys == null)||(keys.length== 0)) throw new IllegalArgumentException("Key array must not be null or empty.");
// extracting the message context
extractMessageContext(true);
// get the properties
ArrayList returnValues = new ArrayList(keys.length);
for (int i=0; i < keys.length; i++) {
String nextKey = keys[i];
if ((nextKey == null)||(nextKey.length() == 0)) throw new IllegalArgumentException("Key at position " + i + " was null or empty.");
returnValues.add(this.switchboard.getConfig(nextKey,null));
}
// return the result
return (String[]) returnValues.toArray(new String[keys.length]);
}
/**
* Returns the current configuration of this peer as XML Document
* @return a XML document of the following format
* <pre>
* &lt;?xml version="1.0"?&gt;
* &lt;settings&gt;
* &lt;option&gt;
* &lt;key&gt;option-name&lt;/key&gt;
* &lt;value&gt;option-value&lt;/value&gt;
* &lt;/option&gt;
* &lt;/settings&gt;
* </pre>
*
* @throws AxisFault if authentication failed
* @throws Exception
*/
public Document getConfigPropertyList() throws Exception {
// extracting the message context
extractMessageContext(true);
// generating the template containing the network status information
byte[] result = writeTemplate(TEMPLATE_CONFIG_XML, new serverObjects());
// sending back the result to the client
return this.convertContentToXML(result);
}
/**
* Returns detailed version information about this peer
* @return a XML document of the following format
* <pre>
* &lt;?xml version="1.0"?&gt;
* &lt;version&gt;
* &lt;number&gt;0.48202791&lt;/number&gt;
* &lt;svnRevision&gt;2791&lt;/svnRevision&gt;
* &lt;buildDate&gt;20061017&lt;/buildDate&gt;
* &lt;/version&gt;
* </pre>
* @throws AxisFault if authentication failed
* @throws Exception
*/
public Document getVersion() throws Exception {
// extracting the message context
extractMessageContext(true);
// generating the template containing the network status information
byte[] result = writeTemplate(TEMPLATE_VERSION_XML, new serverObjects());
// sending back the result to the client
return this.convertContentToXML(result);
}
/**
* This function can be used to configure the peer name
* @param newName the new name of the peer
* @throws AxisFault if authentication failed or peer name was not accepted
*/
public void setPeerName(String newName) throws AxisFault {
// Check for errors
if ((newName == null)||(newName.length() == 0)) throw new IllegalArgumentException("The peer name must not be null or empty.");
// extracting the message context
extractMessageContext(true);
// get the previous name
String prevName = this.switchboard.getConfig("peerName", "");
if (prevName.equals("newName")) return;
// take a look if there is already an other peer with this name
yacySeed oldSeed = yacyCore.seedDB.lookupByName(newName);
if (oldSeed != null) throw new AxisFault("Other peer '" + oldSeed.getName() + "/" + oldSeed.getHexHash() + "' with this name found");
// name must not be too short
if (newName.length() < 3) throw new AxisFault("Name is too short");
// name must not be too long
if (newName.length() > 80) throw new AxisFault("Name is too long.");
// check for invalid chars
for (int i = 0; i < newName.length(); i++) {
if ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_".indexOf(newName.charAt(i)) < 0)
throw new AxisFault("Invalid char at position " + i);
}
// use the new name
this.switchboard.setConfig("peerName", newName);
}
/**
* Changes the port the server socket is bound to.
*
* Please not that after the request was accepted the server waits
* a timeout of 5 seconds before the server port binding is changed
*
* @param newPort the new server port
* @throws AxisFault if authentication failed
*/
public void setPeerPort(int newPort) throws AxisFault {
if (newPort <= 0) throw new IllegalArgumentException("Invalid port number");
// extracting the message context
extractMessageContext(true);
// get the old value
int oldPort = (int) this.switchboard.getConfigLong("port", 8080);
if (oldPort == newPort) return;
// getting the server thread
serverCore theServerCore = (serverCore) this.switchboard.getThread("10_httpd");
// store the new value
this.switchboard.setConfig("port", newPort);
// restart the port listener
// TODO: check if the port is free
theServerCore.reconnect(5000);
}
/**
* This function can be enabled the usage of an already configured remote proxy
* @param enableProxy <code>true</code> to enable and <code>false</code> to disable remote proxy usage
* @throws AxisFault if authentication failed or remote proxy configuration is missing
*/
public void enableRemoteProxy(boolean enableProxy) throws AxisFault {
// extracting the message context
extractMessageContext(true);
// check for errors
String proxyHost = this.switchboard.getConfig("remoteProxyHost", "");
if (proxyHost.length() == 0) throw new AxisFault("Remote proxy hostname is not configured");
String proxyPort = this.switchboard.getConfig("remoteProxyPort", "");
if (proxyPort.length() == 0) throw new AxisFault("Remote proxy port is not configured");
// store the new state
plasmaSwitchboard sb = (plasmaSwitchboard) this.switchboard;
sb.setConfig("remoteProxyUse",Boolean.toString(enableProxy));
sb.remoteProxyConfig = httpRemoteProxyConfig.init(sb);
}
/**
* This function can be used to configured another remote proxy that should be used by
* yacy as parent proxy.
* If a parameter value is <code>null</code> then the current configuration value is not
* changed.
*
* @param enableRemoteProxy to enable or disable remote proxy usage
* @param proxyHost the remote proxy host name
* @param proxyPort the remote proxy user name
* @param proxyUserName login name for the remote proxy
* @param proxyPwd password to login to the remote proxy
* @param noProxyList a list of addresses that should not be accessed via the remote proxy
* @param useProxy4YaCy specifies if the remote proxy should be used for the yacy core protocol
* @param useProxy4SSL specifies if the remote proxy should be used for ssl
*
* @throws AxisFault if authentication failed
*/
public void setRemoteProxy(
Boolean enableRemoteProxy,
String proxyHost,
Integer proxyPort,
String proxyUserName,
String proxyPwd,
String noProxyList,
Boolean useProxy4YaCy,
Boolean useProxy4SSL
) throws AxisFault {
// extracting the message context
extractMessageContext(true);
if (proxyHost != null)
this.switchboard.setConfig("remoteProxyHost", proxyHost);
if (proxyPort != null)
this.switchboard.setConfig("remoteProxyPort", proxyPort.toString());
if (proxyUserName != null)
this.switchboard.setConfig("remoteProxyUser", proxyUserName);
if (proxyPwd != null)
this.switchboard.setConfig("remoteProxyPwd", proxyPwd);
if (noProxyList != null)
this.switchboard.setConfig("remoteProxyNoProxy", noProxyList);
if (useProxy4YaCy != null)
this.switchboard.setConfig("remoteProxyUse4Yacy", useProxy4YaCy.toString());
if (useProxy4SSL != null)
this.switchboard.setConfig("remoteProxyUse4SSL", useProxy4SSL.toString());
// enable remote proxy usage
if (enableRemoteProxy != null) this.enableRemoteProxy(enableRemoteProxy.booleanValue());
}
/**
* Shutdown this peer
* @throws AxisFault if authentication failed
*/
public void shutdownPeer() throws AxisFault {
// extracting the message context
extractMessageContext(true);
this.switchboard.setConfig("restart", "false");
// Terminate the peer in 3 seconds (this gives us enough time to finish the request
((plasmaSwitchboard)this.switchboard).terminate(3000);
}
public void setTransferProperties(
Boolean indexDistribution,
Boolean indexDistributeWhileCrawling,
Boolean indexReceive,
Boolean indexReceiveBlockBlacklist
) throws AxisFault {
// extracting the message context
extractMessageContext(true);
// index Distribution on/off
if (indexDistribution != null) {
this.switchboard.setConfig("allowDistributeIndex", indexDistribution.toString());
}
// Index Distribution while crawling
if (indexDistributeWhileCrawling != null) {
this.switchboard.setConfig("allowDistributeIndexWhileCrawling", indexDistributeWhileCrawling.toString());
}
// Index Receive
if (indexReceive != null) {
this.switchboard.setConfig("allowReceiveIndex", indexReceive.toString());
}
// block URLs received by DHT by blocklist
if (indexReceiveBlockBlacklist != null) {
this.switchboard.setConfig("indexReceiveBlockBlacklist", indexReceiveBlockBlacklist.toString());
}
}
public Document getTransferProperties() throws AxisFault, ParserConfigurationException {
// extracting the message context
extractMessageContext(true);
// creating XML document
Element xmlElement = null;
Document xmlDoc = createNewXMLDocument("transferProperties");
Element xmlRoot = xmlDoc.getDocumentElement();
xmlElement = xmlDoc.createElement("allowDistributeIndex");
xmlElement.appendChild(xmlDoc.createTextNode(Boolean.toString(this.switchboard.getConfigBool("allowDistributeIndex",true))));
xmlRoot.appendChild(xmlElement);
xmlElement = xmlDoc.createElement("allowDistributeIndexWhileCrawling");
xmlElement.appendChild(xmlDoc.createTextNode(Boolean.toString(this.switchboard.getConfigBool("allowDistributeIndexWhileCrawling",true))));
xmlRoot.appendChild(xmlElement);
xmlElement = xmlDoc.createElement("allowReceiveIndex");
xmlElement.appendChild(xmlDoc.createTextNode(Boolean.toString(this.switchboard.getConfigBool("allowReceiveIndex",true))));
xmlRoot.appendChild(xmlElement);
xmlElement = xmlDoc.createElement("indexReceiveBlockBlacklist");
xmlElement.appendChild(xmlDoc.createTextNode(Boolean.toString(this.switchboard.getConfigBool("indexReceiveBlockBlacklist",true))));
xmlRoot.appendChild(xmlElement);
return xmlDoc;
}
}

@ -69,6 +69,7 @@ public class SearchService extends AbstractService
private static final String TEMPLATE_SEARCH = "yacysearch.soap";
private static final String TEMPLATE_URLINFO = "ViewFile.soap";
private static final String TEMPLATE_SNIPPET = "xml/snippet.xml";
private static final String TEMPLATE_OPENSEARCH = "opensearchdescription.xml";
/**
@ -265,4 +266,41 @@ public class SearchService extends AbstractService
}
}
/**
* Returns the OpenSearch-Description of this peer
* @return a XML document of the following format:
* <pre>
* &lt;?xml version="1.0" encoding="UTF-8"?&gt;
* &lt;OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"&gt;
* &lt;ShortName&gt;YaCy/peerName&lt;/ShortName&gt;
* &lt;LongName&gt;YaCy.net - P2P WEB SEARCH&lt;/LongName&gt;
* &lt;Image type="image/gif"&gt;http://ip-address:port/env/grafics/yacy.gif&lt;/Image&gt;
* &lt;Image type="image/vnd.microsoft.icon"&gt;http://ip-address:port/env/grafics/yacy.ico&lt;/Image&gt;
* &lt;Language&gt;en-us&lt;/Language&gt;
* &lt;OutputEncoding&gt;UTF-8&lt;/OutputEncoding&gt;
* &lt;InputEncoding&gt;UTF-8&lt;/InputEncoding&gt;
* &lt;AdultContent&gt;true&lt;/AdultContent&gt;
* &lt;Description&gt;YaCy is a open-source GPL-licensed software that can be used for stand-alone search engine installations or as a client for a multi-user P2P-based web indexing cluster. This is the access to peer 'peername'.&lt;/Description&gt;
* &lt;Url type="application/rss+xml" template="http://ip-address:port/yacysearch.rss?search={searchTerms}&amp;Enter=Search" /&gt;
* &lt;Developer&gt;See http://developer.berlios.de/projects/yacy/&lt;/Developer&gt;
* &lt;Query role="example" searchTerms="yacy" /&gt;
* &lt;Tags&gt;YaCy P2P Web Search&lt;/Tags&gt;
* &lt;Contact&gt;See http://ip-address:port/ViewProfile.html?hash=localhash&lt;/Contact&gt;
* &lt;Attribution&gt;YaCy Software &amp;copy; 2004-2006 by Michael Christen et al., YaCy.net; Content: ask peer owner&lt;/Attribution&gt;
* &lt;SyndicationRight&gt;open&lt;/SyndicationRight&gt;
* &lt;/OpenSearchDescription&gt;
* </pre>
* @throws Exception
*/
public Document getOpenSearchDescription() throws Exception {
// extracting the message context
extractMessageContext(false);
// generating the template containing the network status information
byte[] result = writeTemplate(TEMPLATE_OPENSEARCH, new serverObjects());
// sending back the result to the client
return this.convertContentToXML(result);
}
}

@ -0,0 +1,289 @@
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://yacy:8080/soap/admin" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://yacy:8080/soap/admin" xmlns:intf="http://yacy:8080/soap/admin" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><!--WSDL created by Apache Axis version: 1.2RC2
Built on Nov 16, 2004 (12:19:44 EST)--><wsdl:types><schema targetNamespace="http://yacy:8080/soap/admin" xmlns="http://www.w3.org/2001/XMLSchema"><import namespace="http://xml.apache.org/xml-soap"/><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType name="ArrayOf_soapenc_string"><complexContent><restriction base="soapenc:Array"><attribute ref="soapenc:arrayType" wsdl:arrayType="soapenc:string[]"/></restriction></complexContent></complexType></schema></wsdl:types>
<wsdl:message name="setTransferPropertiesResponse">
</wsdl:message>
<wsdl:message name="shutdownPeerResponse">
</wsdl:message>
<wsdl:message name="enableRemoteProxyRequest">
<wsdl:part name="enableProxy" type="xsd:boolean"/>
</wsdl:message>
<wsdl:message name="setPeerNameRequest">
<wsdl:part name="newName" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="getConfigPropertyRequest">
<wsdl:part name="key" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="getTransferPropertiesRequest">
</wsdl:message>
<wsdl:message name="setRemoteProxyResponse">
</wsdl:message>
<wsdl:message name="getConfigPropertyListRequest">
</wsdl:message>
<wsdl:message name="enableRemoteProxyResponse">
</wsdl:message>
<wsdl:message name="getConfigPropertiesResponse">
<wsdl:part name="getConfigPropertiesReturn" type="impl:ArrayOf_soapenc_string"/>
</wsdl:message>
<wsdl:message name="getConfigPropertiesRequest">
<wsdl:part name="keys" type="impl:ArrayOf_soapenc_string"/>
</wsdl:message>
<wsdl:message name="getVersionRequest">
</wsdl:message>
<wsdl:message name="setPeerPortResponse">
</wsdl:message>
<wsdl:message name="setTransferPropertiesRequest">
<wsdl:part name="indexDistribution" type="soapenc:boolean"/>
<wsdl:part name="indexDistributeWhileCrawling" type="soapenc:boolean"/>
<wsdl:part name="indexReceive" type="soapenc:boolean"/>
<wsdl:part name="indexReceiveBlockBlacklist" type="soapenc:boolean"/>
</wsdl:message>
<wsdl:message name="getConfigPropertyListResponse">
<wsdl:part name="getConfigPropertyListReturn" type="apachesoap:Document"/>
</wsdl:message>
<wsdl:message name="setPeerPortRequest">
<wsdl:part name="newPort" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="getTransferPropertiesResponse">
<wsdl:part name="getTransferPropertiesReturn" type="apachesoap:Document"/>
</wsdl:message>
<wsdl:message name="getConfigPropertyResponse">
<wsdl:part name="getConfigPropertyReturn" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="setPropertiesRequest">
<wsdl:part name="keys" type="impl:ArrayOf_soapenc_string"/>
<wsdl:part name="values" type="impl:ArrayOf_soapenc_string"/>
</wsdl:message>
<wsdl:message name="setRemoteProxyRequest">
<wsdl:part name="enableRemoteProxy" type="soapenc:boolean"/>
<wsdl:part name="proxyHost" type="soapenc:string"/>
<wsdl:part name="proxyPort" type="soapenc:int"/>
<wsdl:part name="proxyUserName" type="soapenc:string"/>
<wsdl:part name="proxyPwd" type="soapenc:string"/>
<wsdl:part name="noProxyList" type="soapenc:string"/>
<wsdl:part name="useProxy4YaCy" type="soapenc:boolean"/>
<wsdl:part name="useProxy4SSL" type="soapenc:boolean"/>
</wsdl:message>
<wsdl:message name="setConfigPropertyResponse">
</wsdl:message>
<wsdl:message name="getVersionResponse">
<wsdl:part name="getVersionReturn" type="apachesoap:Document"/>
</wsdl:message>
<wsdl:message name="setPropertiesResponse">
</wsdl:message>
<wsdl:message name="setPeerNameResponse">
</wsdl:message>
<wsdl:message name="setConfigPropertyRequest">
<wsdl:part name="key" type="soapenc:string"/>
<wsdl:part name="value" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="shutdownPeerRequest">
</wsdl:message>
<wsdl:portType name="AdminService">
<wsdl:operation name="setProperties" parameterOrder="keys values">
<wsdl:input message="impl:setPropertiesRequest" name="setPropertiesRequest"/>
<wsdl:output message="impl:setPropertiesResponse" name="setPropertiesResponse"/>
</wsdl:operation>
<wsdl:operation name="getVersion">
<wsdl:input message="impl:getVersionRequest" name="getVersionRequest"/>
<wsdl:output message="impl:getVersionResponse" name="getVersionResponse"/>
</wsdl:operation>
<wsdl:operation name="setConfigProperty" parameterOrder="key value">
<wsdl:input message="impl:setConfigPropertyRequest" name="setConfigPropertyRequest"/>
<wsdl:output message="impl:setConfigPropertyResponse" name="setConfigPropertyResponse"/>
</wsdl:operation>
<wsdl:operation name="getConfigProperty" parameterOrder="key">
<wsdl:input message="impl:getConfigPropertyRequest" name="getConfigPropertyRequest"/>
<wsdl:output message="impl:getConfigPropertyResponse" name="getConfigPropertyResponse"/>
</wsdl:operation>
<wsdl:operation name="getConfigProperties" parameterOrder="keys">
<wsdl:input message="impl:getConfigPropertiesRequest" name="getConfigPropertiesRequest"/>
<wsdl:output message="impl:getConfigPropertiesResponse" name="getConfigPropertiesResponse"/>
</wsdl:operation>
<wsdl:operation name="getConfigPropertyList">
<wsdl:input message="impl:getConfigPropertyListRequest" name="getConfigPropertyListRequest"/>
<wsdl:output message="impl:getConfigPropertyListResponse" name="getConfigPropertyListResponse"/>
</wsdl:operation>
<wsdl:operation name="setPeerName" parameterOrder="newName">
<wsdl:input message="impl:setPeerNameRequest" name="setPeerNameRequest"/>
<wsdl:output message="impl:setPeerNameResponse" name="setPeerNameResponse"/>
</wsdl:operation>
<wsdl:operation name="setPeerPort" parameterOrder="newPort">
<wsdl:input message="impl:setPeerPortRequest" name="setPeerPortRequest"/>
<wsdl:output message="impl:setPeerPortResponse" name="setPeerPortResponse"/>
</wsdl:operation>
<wsdl:operation name="enableRemoteProxy" parameterOrder="enableProxy">
<wsdl:input message="impl:enableRemoteProxyRequest" name="enableRemoteProxyRequest"/>
<wsdl:output message="impl:enableRemoteProxyResponse" name="enableRemoteProxyResponse"/>
</wsdl:operation>
<wsdl:operation name="setRemoteProxy" parameterOrder="enableRemoteProxy proxyHost proxyPort proxyUserName proxyPwd noProxyList useProxy4YaCy useProxy4SSL">
<wsdl:input message="impl:setRemoteProxyRequest" name="setRemoteProxyRequest"/>
<wsdl:output message="impl:setRemoteProxyResponse" name="setRemoteProxyResponse"/>
</wsdl:operation>
<wsdl:operation name="shutdownPeer">
<wsdl:input message="impl:shutdownPeerRequest" name="shutdownPeerRequest"/>
<wsdl:output message="impl:shutdownPeerResponse" name="shutdownPeerResponse"/>
</wsdl:operation>
<wsdl:operation name="setTransferProperties" parameterOrder="indexDistribution indexDistributeWhileCrawling indexReceive indexReceiveBlockBlacklist">
<wsdl:input message="impl:setTransferPropertiesRequest" name="setTransferPropertiesRequest"/>
<wsdl:output message="impl:setTransferPropertiesResponse" name="setTransferPropertiesResponse"/>
</wsdl:operation>
<wsdl:operation name="getTransferProperties">
<wsdl:input message="impl:getTransferPropertiesRequest" name="getTransferPropertiesRequest"/>
<wsdl:output message="impl:getTransferPropertiesResponse" name="getTransferPropertiesResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="adminSoapBinding" type="impl:AdminService">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="setProperties">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="setPropertiesRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="setPropertiesResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getVersion">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getVersionRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="getVersionResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setConfigProperty">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="setConfigPropertyRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="setConfigPropertyResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getConfigProperty">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getConfigPropertyRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="getConfigPropertyResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getConfigProperties">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getConfigPropertiesRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="getConfigPropertiesResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getConfigPropertyList">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getConfigPropertyListRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="getConfigPropertyListResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setPeerName">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="setPeerNameRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="setPeerNameResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setPeerPort">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="setPeerPortRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="setPeerPortResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="enableRemoteProxy">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="enableRemoteProxyRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="enableRemoteProxyResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setRemoteProxy">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="setRemoteProxyRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="setRemoteProxyResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="shutdownPeer">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="shutdownPeerRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="shutdownPeerResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setTransferProperties">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="setTransferPropertiesRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="setTransferPropertiesResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTransferProperties">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getTransferPropertiesRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="getTransferPropertiesResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/admin" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AdminServiceService">
<wsdl:port binding="impl:adminSoapBinding" name="admin">
<wsdlsoap:address location="http://yacy:8080/soap/admin"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

@ -9,10 +9,17 @@ Built on Nov 16, 2004 (12:19:44 EST)-->
<wsdl:part name="urlStr" type="soapenc:string"/>
<wsdl:part name="viewMode" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="getOpenSearchDescriptionRequest">
</wsdl:message>
<wsdl:message name="getOpenSearchDescriptionResponse">
<wsdl:part name="getOpenSearchDescriptionReturn" type="apachesoap:Document"/>
</wsdl:message>
<wsdl:message name="searchResponse">
<wsdl:part name="searchReturn" type="apachesoap:Document"/>
</wsdl:message>
<wsdl:message name="snippetResponse">
<wsdl:part name="snippetReturn" type="apachesoap:Document"/>
</wsdl:message>
<wsdl:message name="urlInfoByHashResponse">
@ -22,6 +29,7 @@ Built on Nov 16, 2004 (12:19:44 EST)-->
<wsdl:part name="url" type="soapenc:string"/>
<wsdl:part name="searchString" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="urlInfoResponse">
<wsdl:part name="urlInfoReturn" type="apachesoap:Document"/>
</wsdl:message>
@ -31,6 +39,7 @@ Built on Nov 16, 2004 (12:19:44 EST)-->
<wsdl:part name="searchOrder" type="soapenc:string"/>
<wsdl:part name="searchMode" type="soapenc:string"/>
<wsdl:part name="maxSearchTime" type="xsd:int"/>
<wsdl:part name="urlMask" type="xsd:boolean"/>
<wsdl:part name="urlMaskfilter" type="soapenc:string"/>
<wsdl:part name="prefermaskfilter" type="soapenc:string"/>
@ -40,6 +49,7 @@ Built on Nov 16, 2004 (12:19:44 EST)-->
<wsdl:operation name="search" parameterOrder="searchString maxSearchCount searchOrder searchMode maxSearchTime urlMask urlMaskfilter prefermaskfilter category">
<wsdl:input message="impl:searchRequest" name="searchRequest"/>
<wsdl:output message="impl:searchResponse" name="searchResponse"/>
</wsdl:operation>
<wsdl:operation name="snippet" parameterOrder="url searchString">
<wsdl:input message="impl:snippetRequest" name="snippetRequest"/>
@ -49,11 +59,17 @@ Built on Nov 16, 2004 (12:19:44 EST)-->
<wsdl:input message="impl:urlInfoRequest" name="urlInfoRequest"/>
<wsdl:output message="impl:urlInfoResponse" name="urlInfoResponse"/>
</wsdl:operation>
<wsdl:operation name="urlInfoByHash" parameterOrder="urlHash viewMode">
<wsdl:input message="impl:urlInfoByHashRequest" name="urlInfoByHashRequest"/>
<wsdl:output message="impl:urlInfoByHashResponse" name="urlInfoByHashResponse"/>
</wsdl:operation>
<wsdl:operation name="getOpenSearchDescription">
<wsdl:input message="impl:getOpenSearchDescriptionRequest" name="getOpenSearchDescriptionRequest"/>
<wsdl:output message="impl:getOpenSearchDescriptionResponse" name="getOpenSearchDescriptionResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="searchSoapBinding" type="impl:SearchService">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="search">
@ -63,6 +79,7 @@ Built on Nov 16, 2004 (12:19:44 EST)-->
</wsdl:input>
<wsdl:output name="searchResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/search" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="snippet">
@ -72,6 +89,7 @@ Built on Nov 16, 2004 (12:19:44 EST)-->
</wsdl:input>
<wsdl:output name="snippetResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/search" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="urlInfo">
@ -81,6 +99,7 @@ Built on Nov 16, 2004 (12:19:44 EST)-->
</wsdl:input>
<wsdl:output name="urlInfoResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/search" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="urlInfoByHash">
@ -90,6 +109,17 @@ Built on Nov 16, 2004 (12:19:44 EST)-->
</wsdl:input>
<wsdl:output name="urlInfoByHashResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/search" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getOpenSearchDescription">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getOpenSearchDescriptionRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://services.soap.anomic.de" use="encoded"/>
</wsdl:input>
<wsdl:output name="getOpenSearchDescriptionResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://yacy:8080/soap/search" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

Loading…
Cancel
Save