The following code sample executes an XML script:
package com.sap.portal.testing.gc;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.List;
import com.sap.portal.genericcreator.GenericCreatorParams;
import com.sap.portal.genericcreator.GenericCreatorResult;
import com.sap.portal.genericcreator.IGenericCreator;
import com.sap.portal.genericcreator.IGenericCreatorGatewayService;
import com.sap.portal.genericcreator.IGenericCreatorResults;
import com.sap.portal.ivs.genericcreator.Reporter;
import com.sapportals.portal.prt.component.AbstractPortalComponent;
import com.sapportals.portal.prt.component.IPortalComponentRequest;
import com.sapportals.portal.prt.component.IPortalComponentResponse;
import com.sapportals.portal.prt.runtime.PortalRuntime;
public class GCReporterThreadTest extends AbstractPortalComponent {
public void doContent(IPortalComponentRequest request,
IPortalComponentResponse response) {
testGenericCreatorAPI(request,response);
}
// Main routine
public void testGenericCreatorAPI(IPortalComponentRequest request,
IPortalComponentResponse response) {
// Get service
IGenericCreatorGatewayService gwService =
(IGenericCreatorGatewayService)PortalRuntime
.getRuntimeResources().getService(
IGenericCreatorGatewayService.KEY);
IGenericCreator genericCreator = gwService.getGenericCreator();
// Set user and XML
GenericCreatorParams gcParams = new
GenericCreatorParams(request.getUser(),getGCString());
// Execute script
IGenericCreatorResults gcResults =
genericCreator.generate(gcParams);
GenericCreatorResult res = gcResults.getResult();
// Print results
response.write("succeeded? -> " + res.toString() + "<br>");
printNodes(response,"Parsed",gcResults.getParsedNodes());
printNodes(response,"Validation Failed",gcResults.getValidationFailedNodes());
printNodes(response,"Executed",gcResults.getExecutedNodes());
printNodes(response,"Ignored",gcResults.getIgnoredNodes());
printNodes(response,"Succeeded",gcResults.getSucceededNodes());
printNodes(response,"Failed",gcResults.getFailedNodes());
response.write(gcResults.getReport());
}
// Print routine (prints results)
private static void printNodes(IPortalComponentResponse response,
String type,Enumeration enum) {
response.write(type + " Nodes<br>");
while (enum.hasMoreElements()) {
response.write((String)enum.nextElement() + "<br>");
}
response.write("<br>");
}
// Creates XML script
private static String getGCString() {
StringBuffer sb = new StringBuffer("<GenericCreator author='SAP' version='Testing' mode='clean,execute' report.level='success' createMode='1' default.locale='en' ignore='false'>");
sb.append("<Context parent='portal_content' name='test_folder' objectClass='com.sap.portal.pcd.gl.GlContext' title='Test folder'>");
sb.append("</Context></GenericCreator>");
return sb.toString();
}
}