Or, wiping out all the data in an ATG repository. Sometimes you have to do it, for example to reset some tables to start from scratch: ATG provides a documented operational tag remove-all-items that can be written in an XML file executed with startSQLRepository. This tag demands an item-descriptor attribute, but to completely wipe out a repository you’ll have to copy/paste the descriptor names from the repository definition file.
Here’s a very quick and dirty page to produce the XML file:
<%@ page contentType="text/xml;charset=UTF-8" import="atg.repository.Repository" %>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE gsa-template SYSTEM "dynamosystemresource:/atg/dtds/gsa/gsa_1.0.dtd">
<gsa-template>
<%@ taglib uri="/dspEL" prefix="dsp" %>
<%--
Generates an XML file that contains the "remove-all-items" tags to remove all items of all item
descriptors in the repository component passed as the repository parameter.
--%>
<dsp:droplet name="/atg/dynamo/droplet/IsEmpty">
<dsp:param name="value" param="repository" />
<dsp:oparam name="false">
<%
// we need a Dynamo request to be able to resolveName()
DynamoHttpServletRequest req = atg.servlet.ServletUtil.getDynamoRequest(request);
Repository rep = (Repository)req.resolveName(request.getParameter("repository"));
if (rep != null) {
String[] itemDescNames = rep.getItemDescriptorNames();
if (itemDescNames != null) {
for (int i = 0; i < itemDescNames.length; i++) {
// emit the remove-all-items tag
out.print("<remove-all-items item-descriptor=\"" + itemDescNames[i] + "\" />" + "\r\n");
}
}
}
%>
</dsp:oparam>
</dsp:droplet>
</gsa-template>
Save this page in a webapp and call it with specifying the repository to be wiped out:
http://localhost:8840/default/remove-all-items.jsp?repository=/TestRepository
You can then save the result in an XML file in the localconfig directory and execute it with:
bin/startSQLRepository -m module -repository /TestRepository /test-repository-remove-all-items.xml
See again the documentation for the system property to set to make it all work.