Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/20/10 09:54:05 (14 years ago)
Author:
cneumuel
Message:

fixed invalid plugin-directory (#1159)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/PluginCache.cs

    r4254 r4269  
    99using HeuristicLab.PluginInfrastructure.Manager;
    1010using HeuristicLab.Tracing;
     11using System.Reflection;
    1112
    1213namespace HeuristicLab.Hive.Slave.Core {
     
    1516    private static PluginCache instance = null;
    1617
    17     public const string PLUGIN_REPO = @"plugins\";
     18    public string PluginRepositoryDir { get; set; }
    1819
    1920    private List<PluginDescription> cachedPlugins = new List<PluginDescription>();
    2021
    21     private PluginManager pm = new PluginManager(PLUGIN_REPO);
     22    private PluginManager pm;
    2223
    2324    public static PluginCache Instance {
     
    2829      }
    2930    }
     31
    3032    public PluginCache() {
     33      PluginRepositoryDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "plugins");
     34     
     35      this.pm = new PluginManager(PluginRepositoryDir);
    3136      DoUpdateRun();
    3237    }
    3338
    3439    private void DoUpdateRun() {
     40      if (!Directory.Exists(PluginRepositoryDir)) {
     41        Directory.CreateDirectory(PluginRepositoryDir);
     42      }
    3543      pm.DiscoverAndCheckPlugins();
    3644      cachedPlugins = new List<PluginDescription>(pm.Plugins);
    3745    }
    3846
    39 
    4047    [MethodImpl(MethodImplOptions.Synchronized)]
    4148    public bool CopyPluginsForJob(List<HivePluginInfoDto> requests, Guid jobId) {
    42 
    43       String targetDir = PLUGIN_REPO + jobId.ToString() + "\\";
     49      String targetDir = Path.Combine(PluginRepositoryDir, jobId.ToString());
    4450
    4551      if (Directory.Exists(targetDir)) {
     
    5056
    5157      foreach (HivePluginInfoDto requestedPlugin in requests) {
    52         PluginDescription pd =
    53           cachedPlugins.Where(
    54             cp =>
    55             cp.Name == requestedPlugin.Name &&
    56             cp.Version.Major == requestedPlugin.Version.Major &&
    57             cp.Version.Minor == requestedPlugin.Version.Minor &&
    58             cp.Version.Revision >= requestedPlugin.Version.Revision).
    59             SingleOrDefault();
     58        PluginDescription pd = cachedPlugins.Where(cp =>
     59          cp.Name == requestedPlugin.Name &&
     60          cp.Version.Major == requestedPlugin.Version.Major &&
     61          cp.Version.Minor == requestedPlugin.Version.Minor &&
     62          cp.Version.Revision >= requestedPlugin.Version.Revision).
     63          SingleOrDefault();
    6064        if (pd == null) {
    6165          return false;
     
    6367
    6468        foreach (IPluginFile ipf in pd.Files) {
    65           File.Copy(ipf.Name, targetDir + ipf.Name.Split('\\').Last());
     69          string x = targetDir + ipf.Name.Split('\\').Last();
     70          string y = Path.Combine(targetDir, Path.GetFileName(ipf.Name));
     71
     72          //File.Copy(ipf.Name, targetDir + ipf.Name.Split('\\').Last());
     73          File.Copy(ipf.Name, Path.Combine(targetDir, Path.GetFileName(ipf.Name)));
    6674        }
    6775      }
     
    113121        Logger.Debug("creating new files");
    114122        foreach (HivePluginFile pf in updateablePlugin.PluginFiles) {
    115           File.WriteAllBytes(PLUGIN_REPO + pf.Name.Split('\\').Last(), pf.BinaryFile);
     123          string x = PluginRepositoryDir + pf.Name.Split('\\').Last();
     124          string y = Path.Combine(PluginRepositoryDir, Path.GetFileName(pf.Name));
     125          File.WriteAllBytes(Path.Combine(PluginRepositoryDir, Path.GetFileName(pf.Name)), pf.BinaryFile);
    116126        }
    117127
     
    124134      try {
    125135        Logger.Debug("unloading...");
    126         Directory.Delete(Path.Combine(PLUGIN_REPO, id.ToString()), true);
    127       } catch (Exception ex) {
     136        Directory.Delete(Path.Combine(PluginRepositoryDir, id.ToString()), true);
     137      }
     138      catch (Exception ex) {
    128139        Logger.Debug("failed while unloading " + id + " with exception " + ex);
    129140      }
Note: See TracChangeset for help on using the changeset viewer.