Changeset 4116


Ignore:
Timestamp:
Jan 31, 2008, 4:39:03 PM (15 years ago)
Author:
Martin Svensson
Message:

Fixes #914 Make PluginConfigurationImporter? smarter

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/plugins/core/net/sf/basedb/plugins/PluginConfigurationImporter.java

    r4115 r4116  
    3939import net.sf.basedb.core.Item;
    4040import net.sf.basedb.core.ItemContext;
     41import net.sf.basedb.core.ItemNotFoundException;
    4142import net.sf.basedb.core.Location;
    4243import net.sf.basedb.core.LongParameterType;
     
    5960import net.sf.basedb.core.plugin.Request;
    6061import net.sf.basedb.core.plugin.Response;
     62import net.sf.basedb.util.PluginConfigInfo;
    6163import net.sf.basedb.util.XMLUtil;
    6264
     
    283285        is.close();
    284286       
    285         response.setDone("The configurations were imported successfully!");
     287        response.setDone("Configuration import finished succesfully!");
    286288       
    287289      }
     
    351353    throws BaseException
    352354  {           
    353     DbControl dc = null;   
     355    DbControl dc = null;
    354356    try
    355357    {
     
    374376        String description = configuration.getChildText("description");
    375377        String pluginClassName = configuration.getAttributeValue("pluginClassName");
     378        PluginDefinition pluginDefinition = null;
     379        try
     380        {
     381          pluginDefinition = PluginDefinition.getByClassName(dc, pluginClassName);
     382         
     383          boolean importConfiguration = !importAll && getConfigurationInstallOption(parameternumber);
     384          if ((importConfiguration || importAll))
     385          {
     386            PluginConfiguration pluginConfig = PluginConfiguration.getNew(dc, pluginDefinition);
     387            if (setPermissions)
     388            {
     389              pluginConfig.setItemKey(pluginDefinition.getItemKey());
     390              pluginConfig.setProjectKey(pluginDefinition.getProjectKey());
     391            }
     392            pluginConfig.setName(name);
     393            pluginConfig.setDescription(description);
     394            dc.saveItem(pluginConfig);
     395           
     396            List parameters = configuration.getChildren("parameter");
     397            setPluginConf(parameters, pluginConfig);
     398          }
     399        }
     400        catch (ItemNotFoundException infex)
     401        {}
    376402       
    377         boolean importConfiguration = !importAll && getConfigurationInstallOption(parameternumber);
    378         if (importConfiguration || importAll)
    379         {
    380           PluginDefinition pluginDefinition = PluginDefinition.getByClassName(dc, pluginClassName);
    381           PluginConfiguration pluginConfig = PluginConfiguration.getNew(dc, pluginDefinition);
    382           if (setPermissions)
    383           {
    384             pluginConfig.setItemKey(pluginDefinition.getItemKey());
    385             pluginConfig.setProjectKey(pluginDefinition.getProjectKey());
    386           }
    387           pluginConfig.setName(name);
    388           pluginConfig.setDescription(description);
    389           dc.saveItem(pluginConfig);
    390          
    391           List parameters = configuration.getChildren("parameter");
    392           setPluginConf(parameters, pluginConfig); 
    393         }
    394403        parameternumber++;
    395404      }       
     
    457466        Request.COMMAND_CONFIGURE_JOB,
    458467        "Configuration import options",
    459         "Set the options to run this job",
     468        "Set the options to run this job.\n" +
     469        "NOTICE! Only configurations for already installed plugins will be handled.",
    460470        parameters
    461471      );
     
    501511          String description = configElement.getChildText("description");
    502512          String pluginName = configElement.getAttributeValue("pluginClassName");
    503          
    504           if (configLists.get(pluginName) == null)
     513          try
    505514          {
    506             typeList = new ArrayList<PluginParameter<?>>();
    507             typeList.add(new PluginParameter<Boolean>
    508               (
    509                   pluginName,
    510                   pluginName.substring(pluginName.lastIndexOf('.') + 1),
    511                   "Configurations for plugin: " +pluginName,
    512                   null
    513               ));
     515            PluginDefinition.getByClassName(dc, pluginName);
     516            if (configLists.get(pluginName) == null)
     517            {
     518              typeList = new ArrayList<PluginParameter<?>>();
     519              typeList.add(new PluginParameter<Boolean>
     520                (
     521                    pluginName,
     522                    pluginName.substring(pluginName.lastIndexOf('.') + 1),
     523                    "Configurations for plugin: " +pluginName,
     524                    null
     525                ));
     526            }
     527            else
     528            {
     529              typeList = configLists.get(pluginName);
     530            }
     531           
     532            PluginParameter<Boolean> configurationParameter =
     533              new PluginParameter<Boolean>(
     534              "configuration"+parameternumber,
     535              configName,
     536              "Select if configuration should be imported or not. " +
     537              "TRUE will include this configuration in the import.\n\n" + description,
     538              new BooleanParameterType(null, false)
     539            );
     540            typeList.add(configurationParameter);
     541            configLists.put(pluginName, typeList);
    514542          }
    515           else
    516           {
    517             typeList = configLists.get(pluginName);
    518           }
    519          
    520           PluginParameter<Boolean> configurationParameter =
    521             new PluginParameter<Boolean>(
    522             "configuration"+parameternumber,
    523             configName,
    524             "Select if configuration should be imported or not. " +
    525             "TRUE will include this configuration in the import.\n\n" + description,
    526             new BooleanParameterType(null, false)
    527           );
    528           typeList.add(configurationParameter);
    529           configLists.put(pluginName, typeList);
     543          catch (ItemNotFoundException infex){}
    530544          parameternumber++;
    531545        }
Note: See TracChangeset for help on using the changeset viewer.