importPackage(Packages.de.elo.ix.client); //@include lib_Class.js //@include lib_sol.common.FileUtils.js //@include lib_sol.common.UserUtils.js //@include lib_sol.common.ix.RfUtils.js //@include lib_sol.common.ix.ServiceBase.js var logger = sol.create("sol.Logger", { scope: "sol.dev.ix.services.DownloadIxPlugin" }); /** * Transfers an IX plug-in * * # As IX function call * * In addition to the workflow node configuration the objId must be passed. * * sol.common.IxUtils.execute("sol.dev.ix.services.DownloadIxPlugin", { * name: "bs.common" * }); * * @author MW, ELO Digital Office GmbH * @version 1.0 * * @eloix * * @requires sol.common.RepoUtils */ sol.define("sol.dev.ix.services.DownloadIxPlugin", { extend: "sol.common.ix.ServiceBase", /** * @cfg {String} objId (required) */ initialize: function (config) { var me = this; me.$super("sol.common.ix.ServiceBase", "initialize", [config]); }, /** * Transfers an IX plug-in * @returns {String} IX plug-in path */ process: function () { var me = this, osgiPluginDirectoriesString, pluginFilePath, fileData, kiloBytes; osgiPluginDirectoriesString = sol.common.RepoUtils.getIxOption("osgiPluginDirectories"); me.osgiPluginDirectories = osgiPluginDirectoriesString.split(";"); if (!me.osgiPluginDirectories || (me.osgiPluginDirectories.length == 0)) { throw "OSGI plug-in directory not set"; } pluginFilePath = me.findPlugin(me.name); fileData = sol.common.FileUtils.loadToFileData(pluginFilePath, "application/java-archive"); kiloBytes = Math.round(fileData.data.length / 1024); logger.debug(["Transfer IX plug-in '{0}: {1} kB", me.name, kiloBytes]); return fileData; }, findPlugin: function (pluginName) { var me = this, i, osgiPluginDirectory, pluginFilePath, pluginFile; for (i = 0; i < me.osgiPluginDirectories.length; i++) { osgiPluginDirectory = me.osgiPluginDirectories[i]; pluginFilePath = osgiPluginDirectory + java.io.File.separator + pluginName; pluginFile = new java.io.File(pluginFilePath); if (pluginFile.exists()) { return pluginFilePath; } } throw "Can't find IX plug-in '" + pluginName + "'"; } }); /** * @member sol.dev.ix.services.DownloadIxPlugin * @method RF_sol_dev_service_DownloadIxPlugin * @static * @inheritdoc sol.common.ix.ServiceBase#RF_ServiceBaseName */ function RF_sol_dev_service_DownloadIxPlugin(ec, args) { var params, download, fileData; logger.enter("RF_sol_dev_service_DownloadIxPlugin", args); params = sol.common.ix.RfUtils.parseAndCheckParams(ec, arguments.callee.name, args, "name"), sol.common.ix.RfUtils.checkMainAdminRights(ec.user, params); download = sol.create("sol.dev.ix.services.DownloadIxPlugin", params); fileData = download.process(); logger.exit("RF_sol_dev_service_DownloadIxPlugin"); return fileData; }