Hi,
I'm trying read wiki and update wiki page with xml rpc.
Guys have working python rpc xml script which with that account I rewrited
it to java. When I'm changing account name in config doesn't affect resuts -
so it is not log in. How I should log in with xml rpc in java?
I have this code:
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.xmlrpc.XmlRpcException;
//import org.apache.xmlrpc.client.XmlRpcClient;
//import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
//import org.apache.xmlrpc.client.XmlRpcCommonsTransportFactory;
import org.apache.xmlrpc.client.*;
public class Test
{
Test( String targetBuild ) throws XmlRpcException
{
String pageURL = null;
if ( targetBuild.contains("AAA"))
{ pageURL = "wiki/AAA"; }
else if ( targetBuild.contains("BBB"))
{ pageURL = "wiki/BBB"; }
else if ( targetBuild.contains("CCC"))
{ pageURL = "wiki/CCC"; }
if ( pageURL == null )
{
System.out.println("pageURL for wikiUpdate is empty!
Exiting...");
System.exit(1);
}
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
XmlRpcClient client = new XmlRpcClient();
try
{ config.setServerURL(new
URL("http://wiki.someserver.com/?action=xmlrpc2")); }
catch (MalformedURLException e)
{ e.printStackTrace(); }
config.setBasicUserName("xmlrpcuser");
config.setBasicPassword("xmlrpcpassword");
client.setConfig(config);
String oldPage = null;
oldPage = getWikiPage(client, pageURL);
List<String> dataSections = separateWikiSections(oldPage);
String linpackSection = dataSections.get(2);
if ( !linpackSectionContainsTargetBuild(linpackSection,
targetBuild))
{
modifyLinpackSection( dataSections, targetBuild );
updateWikiPage(client, pageURL,
buildPageFromSections(dataSections));
}
}
private String buildPageFromSections( List<String> dataSections )
{
String concatenatedString = null;
for ( String section : dataSections )
{
if ( concatenatedString != null )
{ concatenatedString = concatenatedString +
section; }
else
{ concatenatedString = section; }
}
return concatenatedString;
}
private void modifyLinpackSection( List<String> dataSection, String
targetBuild )
{ dataSection.set(3, "|| " + targetBuild + " || {./} || {./} ||
{./} ||
{./} ||\n##block end"); }
public boolean linpackSectionContainsTargetBuild( String linpackSection,
String targetBuild )
{
if ( linpackSection.contains(targetBuild))
{ return true; }
else
{ return false; }
}
public String getWikiPage( XmlRpcClient client, String pageURL ) throws
XmlRpcException
{
Vector<String> parms = new Vector<>();
parms.add(pageURL);
return (String)client.execute( "getPage", parms );
}
public void updateWikiPage( XmlRpcClient client, String pageURL, String
newPage ) throws XmlRpcException
{
Vector<String> parms = new Vector<>();
parms.add( pageURL );
parms.add( newPage );
client.execute("putPage", parms );
}
public List<String> separateWikiSections ( String oldPage )
{
List<String> dataBlocks = new ArrayList<>();
Pattern pattern = Pattern.compile("(.*)(##block start)(.*)(##block
end)(.*)", Pattern.DOTALL);
Matcher matcher = pattern.matcher( oldPage );
while ( matcher.find())
{
dataBlocks.add(matcher.group(1));
dataBlocks.add(matcher.group(2));
dataBlocks.add(matcher.group(3));
dataBlocks.add(matcher.group(4));
dataBlocks.add(matcher.group(5));
}
return dataBlocks;
}
public static void main (String [] args)
{
try
{ new Test(args[0]); }
catch (XmlRpcException e)
{ e.printStackTrace(); }
}
}
--
View this message in context:
http://apache-xml-project.6118.n7.nabble.com/Problem-with-log-in-to-have-write-access-tp40413.html
Sent from the Apache Xml-RPC - User mailing list archive at Nabble.com.