In a previous post (http://yatb.mitza.net/2012/12/a-core-service-java-client.html), I was presenting the Java client for Core Service. In this post, I decided to post the distributable JAR on my Google Code project page. You can find the JAR distributable [direct link] for Core Service Java client for Tridion 2011 SP1 HR1 at the following URL: https://code.google.com/p/yet-another-tridion-blog/source/browse/trunk/Core+Service+Java+Client/#Core%20Service%20Java%20Client%2Fdist
The only new feature of this distribution is the CoreServiceFactory class in package mitza.coreservice.client, which allows you to easily obtain a Core Service client object. The following methods are exposed:
The factory also allows to specify the Core Service base URL, user name and password:
The only new feature of this distribution is the CoreServiceFactory class in package mitza.coreservice.client, which allows you to easily obtain a Core Service client object. The following methods are exposed:
- getBasicHttpClient() - Get the singleton CoreService client for the BasicHttp endpoint;
- getService() - Get the singleton CoreService2011 service object. This method is used internally by the get*Client methods. The logic uses a WSDL local to the JAR rather than connecting and downloading the WSDL from the remote Core Service server;
The factory also allows to specify the Core Service base URL, user name and password:
- setDefault(String coreServiceBaseUrl) - Set the default CoreService URL. The user name and password are omitted in this case -- the currently logged in user is used implicitely;
- setDefault(String userName, String password) - Set the default CoreService user and password. The Core Service base URL is omitted in this case -- the URL http://localhost is used implicitely
- setDefault(String coreServiceBaseUrl, String userName, String password) - Set the default CoreService URL, user name and password;
Example: how to get a Core Service client object:
CoreServiceFactory.setDefault("http://t2011sp1hr1.playground", "administrator", "password");
ICoreService client = CoreServiceFactory.getBasicHttpClient();
The distributable contains a test class Test in package mitza.coreservice.client. The program expects 0 to 3 arguments ranging from only specifying the URL to all 3 params (URL, user name, password).
To run the code, one could use runtest.bat available:
public static void main(String[] args) throws Exception {
if (args.length == 1) { // URL
CoreServiceFactory.setDefault(args[0]);
} else if (args.length == 2) { // username, password
CoreServiceFactory.setDefault(args[0],
args[1]);
} else if (args.length == 3) { // URL, username,
password
CoreServiceFactory.setDefault(args[0],
args[1], args[2]);
} else {
CoreServiceFactory.setDefault("http://t2013.playground");
}
ICoreService client = CoreServiceFactory.getBasicHttpClient();
System.out.println("Api version: " + client.getApiVersion());
UserData currentUser = client.getCurrentUser();
System.out.println("Current user: '" + currentUser.getTitle() + "' '" +
currentUser.getDescription() + "' " + currentUser.getId());
System.out.println("Publication objects:");
PublicationsFilterData filter = new PublicationsFilterData();
ArrayOfIdentifiableObjectData
systemWideList = client.getSystemWideList(filter);
for (IdentifiableObjectData iod : systemWideList.getIdentifiableObjectData())
{
PublicationData publication =
(PublicationData) iod;
System.out.println("\t" + publication.getTitle());
}
System.out.println("Publications XML:");
GetSystemWideListXmlResult resultXml =
client.getSystemWideListXml(filter);
Element element = (Element)
resultXml.getAny();
Utils.printDocument(element.getOwnerDocument(),
System.out);
}
set classpath=;core-service-client-2011sp1hr1.jar
java -cp %classpath% mitza.coreservice.client.Test http://localhost author tridion
Comments