Ignore:
Timestamp:
Sep 6, 2007, 2:56:57 PM (14 years ago)
Author:
Martin Svensson
Message:

References #364. Most of the plugin settings can be saved now, but still some things left to add

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/admin/plugindefinitions/index.jsp

    r3708 r3712  
    4141  import="net.sf.basedb.core.ItemContext"
    4242  import="net.sf.basedb.core.MultiPermissions"
     43  import="net.sf.basedb.core.BaseException"
    4344  import="net.sf.basedb.core.PermissionDeniedException"
    4445  import="net.sf.basedb.core.ItemAlreadyExistsException"
     
    4647  import="net.sf.basedb.core.plugin.Plugin"
    4748  import="net.sf.basedb.core.query.Hql"
     49  import="net.sf.basedb.util.FileUtil"
     50  import="net.sf.basedb.util.PluginInfo"
    4851  import="net.sf.basedb.util.RemovableUtil"
    4952  import="net.sf.basedb.util.ShareableUtil"
     
    157160  {
    158161    //Loads plugins from jars that have been selected in auto_installer.jsp
    159     dc = sc.newDbControl();
     162    ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, defaultContext);
     163    dc = sc.newDbControl();
     164    java.io.File pluginDir = new java.io.File(request.getParameter("plugin_path"));
     165    List<PluginInfo> pluginInfos = new ArrayList<PluginInfo>();
     166    List<java.io.File> jarFiles = FileUtil.findFiles(pluginDir, null, "jar", true);
     167   
     168    for (java.io.File file : jarFiles)
     169    {
     170      pluginInfos.addAll(PluginInfo.loadFromJar(file));
     171    }
     172    for (PluginInfo info : pluginInfos)
     173    {
     174      String selectedOption = request.getParameter(info.getJarPath() + "." + info.getClassName());
     175      if (selectedOption == null) selectedOption = "";
     176      StringBuilder installedPlugins = new StringBuilder();
     177      StringBuilder notInstalledPlugins = new StringBuilder();
     178      boolean classExists = Values.getBoolean(request.getParameter(info.getClassName()+".classExists"));
     179      int usePermissions = Values.getInt(request.getParameter("use_permissions"));
     180      if (selectedOption.equals("plugin") || selectedOption.equals("plugin+configurations"))
     181      {
     182        if (!classExists)
     183        {
     184          PluginDefinition pd = null;
     185          try
     186          {
     187            pd = PluginDefinition.getNew(dc, info.getClassName(), info.getJarPath(), usePermissions==2);
     188          }
     189          catch(BaseException bex)
     190          {
     191            notInstalledPlugins.append("Could notinstall: " +
     192                info.getClassName() + " in jar:" + info.getJarPath() + "\n");
     193          }
     194          if (pd != null)
     195          {
     196            installedPlugins.append("Installed :" + pd.getClassName() + "\n");
     197            dc.saveItem(pd);
     198            pd.setTrusted(Values.getBoolean(request.getParameter("trusted")));
     199            String aie = Values.getStringOrNull(request.getParameter("allow_immediate_execution"));
     200            pd.setAllowImmediateExecution(aie == null ?
     201              pd.getMainType() == Plugin.MainType.EXPORT : Values.getBoolean(aie));           
     202          }
     203        }
     204      }
     205    }
     206    dc.commit();
     207    cc.removeObject("item");
    160208  }
    161209  else if ("UpdateItem".equals(cmd))
Note: See TracChangeset for help on using the changeset viewer.