package org.apache.jetspeed.modules.actions; // jetspeed stuff import org.apache.jetspeed.services.JetspeedSecurity; import org.apache.jetspeed.services.PsmlManager; import org.apache.jetspeed.services.psmlmanager.PsmlImporter; import org.apache.jetspeed.services.psmlmanager.PsmlManagerService; import org.apache.turbine.services.TurbineServices; import org.apache.turbine.util.Log; import org.apache.turbine.util.ParameterParser; import org.apache.turbine.util.RunData; /** * Import file psml into database action. This action is useful when populating * psml for the first time. * * @author <a href="mark_orciuch@ngsltd.com">Mark Orciuch</a> * @version $Id: ImportPsml.java,v 1.1 2004/01/29 20:36:54 morciuch Exp $ */ public class ImportPsml extends org.apache.turbine.modules.Action { public static final String USER = "user"; public static final String PASSWORD = "password"; public static final String CHECK_IMPORT = "check-import"; /** * Perform the action */ public void doPerform(RunData data) throws Exception { try { ParameterParser parser = data.getParameters(); //String username = parser.getString(USER, "admin"); //String password = parser.getString(PASSWORD); boolean checkImport = parser.getBoolean(CHECK_IMPORT, false); //JetspeedUser admin = JetspeedSecurity.login(username, password); String username = data.getUser().getUserName(); if (!JetspeedSecurity.hasRole(username, "admin")) { data.setMessage("Only administrator can perform this action"); throw new Exception("Only administrator can perform this action"); } // // get a handle to the exporter service // PsmlManagerService exporterService = null; PsmlManagerService importerService = null; try { exporterService = (PsmlManagerService)TurbineServices.getInstance().getService("PsmlImportManager"); } catch (org.apache.turbine.services.InstantiationException e) { String msg = "PSML Importer: error loading Psml Exporter Service"; data.setMessage(msg); Log.error(msg, e); } // // get a handle to the importer service // try { importerService = PsmlManager.getService(); } catch (org.apache.turbine.services.InstantiationException e) { String msg = "PSML Importer: error loading Psml Importer Service"; data.setMessage(msg); Log.error(msg, e); } if (exporterService.getClass().getName().equals(importerService.getClass().getName())) { String msg = "PSML Importer Error: Importer Class cannot equal Exporter Class."; data.setMessage(msg); Log.error(msg); } PsmlImporter importer = new PsmlImporter(); importer.setCheck(checkImport); boolean ran = importer.run(exporterService, importerService); if (ran) { String msg = "**** PSML Importer - completed"; System.out.println(msg); data.setMessage(msg); } else { String msg = "**** PSML Importer - did not run"; System.out.println(msg); data.setMessage(msg); } } catch (Exception e) { data.setMessage(e.getMessage()); Log.error(e.getMessage()); } } }