import org.ten60.netkernel.layer1.representation.*;
import org.ten60.netkernel.xml.representation.*;
main()
{   
    serverlist = context.sourceAspect("ffcpl:/org/ten60/netkernel/ext_install/installer/add/serverlist.xml",IAspectXDA.class).getXDA();
    serverURI=serverlist.getText("server[1]/uri",true)+"modules.xml";
    req = context.createSubRequest();
    req.setURI(serverURI);
    req.setAspectClass(IAspectXDA.class);
    handle = context.issueAsyncSubRequest(req);
    modules = handle.join(4000);    // timeout of 4 seconds
    if (modules==null) throw new Exception("mirror not available");

    req = context.createSubRequest();
    req.setURI("active:findUpdates");
    req.addArgument("operator","netkernel:module");
    req.addArgument("param",modules);
    req.setAspectClass(IAspectXDA.class);
    updates = context.issueSubRequest(req).getAspect(IAspectXDA.class);
    updateCount=updates.getXDA().eval("count(/modules/module)").getStringValue();

    aspect = new StringAspect("<updates>"+updateCount+"</updates>");
    response = context.createResponseFrom(aspect);
    response.setExpiryPeriod(3600000L); // one hour
    response.setMimeType("text/xml");
    context.setResponse(response);
}