/*
* Created on Sep 25, 2004
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package org.exist.xmldb.concurrent.action;
import java.util.Random;
import org.xmldb.api.DatabaseManager;
import org.xmldb.api.base.Collection;
import org.xmldb.api.modules.XUpdateQueryService;
/**
* @author wolf
*/
public class AttributeUpdateAction extends RemoveAppendAction {
private static final String XUPDATE_START =
"<xu:modifications xmlns:xu=\"http://www.xmldb.org/xupdate\" version=\"1.0\">"
+ "<xu:update select=\"//ELEMENT/@attribute-1\">";
private static final String XUPDATE_END =
"</xu:update>" +
"</xu:modifications>";
private Random rand = new Random();
/**
* @param collectionPath
* @param resourceName
*/
public AttributeUpdateAction(String collectionPath, String resourceName, String[] wordList) {
super(collectionPath, resourceName, wordList);
}
/* (non-Javadoc)
* @see org.exist.xmldb.test.concurrent.Action#execute()
*/
public boolean execute() throws Exception {
Collection col = DatabaseManager.getCollection(collectionPath, "admin", null);
XUpdateQueryService service = (XUpdateQueryService)
col.getService("XUpdateQueryService", "1.0");
int attrSize = rand.nextInt(5);
for (int i = 0; i < 10; i++) {
String xupdate = XUPDATE_START + xmlGenerator.generateText(attrSize) + XUPDATE_END;
long mods = service.update(xupdate);
System.out.println(Thread.currentThread().getName() + ": " + mods + " attributes updated ...");
}
return false;
}
}