/** * Exports all synchronize-enabled PRISMS data to a file to be imported later * * @param ui The user interface to communicate with * @param global Whether to export ALL data available to synchronization instead of just the * local data and local modifications * @return Whether the export succeeded */ public boolean exportData(prisms.ui.UI ui, boolean global) { prisms.ui.UI.DefaultProgressInformer pi = new prisms.ui.UI.DefaultProgressInformer(); pi.setProgressText("Configuring PRISMS applications"); ui.startTimedTask(pi); try { for (PrismsApplication app : theApps) { if (!app.isConfigured()) { pi.setProgressText("Configuring " + app.getName()); // Configure the application. Can't be done except by the PrismsServer prisms.util.PrismsServiceConnector conn = new prisms.util.PrismsServiceConnector( theApps[0].getEnvironment().getIDs().getLocalInstance().location, app.getName(), app.getClients()[0].getName(), "System"); try { conn.getConnector() .setTrustManager( new javax.net.ssl.X509TrustManager() { public void checkClientTrusted( java.security.cert.X509Certificate[] chain, String authType) throws java.security.cert.CertificateException {} public void checkServerTrusted( java.security.cert.X509Certificate[] chain, String authType) throws java.security.cert.CertificateException {} public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } }); } catch (java.security.GeneralSecurityException e) { log.error("Could not set trust manager for service connector", e); } conn.setUserSource(theApps[0].getEnvironment().getUserSource()); log.debug("Application " + app.getName() + " is not yet configured. Configuring."); try { conn.init(); conn.logout(true); } catch (java.io.IOException e) { if (!app.isConfigured()) { ui.error( "Could not configure application " + app.getName() + ". Export data cannot proceed."); log.error("Could not configure application " + app.getName(), e); return false; } } if (!app.isConfigured()) { ui.error( "Could not configure application " + app.getName() + ". Export data cannot proceed."); log.error("Could not configure application " + app.getName()); return false; } } } return exportData(ui, pi, global); } finally { pi.setDone(); } }