Changeset 5958


Ignore:
Timestamp:
04/05/11 17:45:59 (9 years ago)
Author:
cneumuel
Message:

#1233

  • initial port of HiveEngine
Location:
branches/HeuristicLab.Hive-3.4/sources
Files:
18 added
7 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/ExperimentManagerClient.cs

    r5955 r5958  
    257257      }
    258258
    259       hiveJob.Job.PluginsNeededIds = GetPluginDependencies(service, this.onlinePlugins, this.alreadyUploadedPlugins, plugins, useLocalPlugins);
     259      hiveJob.Job.PluginsNeededIds = PluginUtil.GetPluginDependencies(service, this.onlinePlugins, this.alreadyUploadedPlugins, plugins, useLocalPlugins);
    260260      hiveJob.Job.PluginsNeededIds.Add(configPluginId);
    261261
     
    350350    }
    351351
    352     #region Plugin Management
    353     /// <summary>
    354     /// Checks if plugins are available on Hive Server. If not they are uploaded. Ids are returned.
    355     /// </summary>
    356     /// <param name="service">An active service-proxy</param>
    357     /// <param name="onlinePlugins">List of plugins which are available online</param>
    358     /// <param name="alreadyUploadedPlugins">List of plugins which have been uploaded from this HiveExperiment</param>
    359     /// <param name="neededPlugins">List of plugins which need to be uploaded</param>
    360     /// <param name="useLocalPlugins">If true, the plugins which are already online are ignored. All local plugins are uploaded, but only once.</param>
    361     /// <returns></returns>
    362     private static List<Guid> GetPluginDependencies(IHiveService service, IEnumerable<Plugin> onlinePlugins, List<Plugin> alreadyUploadedPlugins, IEnumerable<IPluginDescription> neededPlugins, bool useLocalPlugins) {
    363       var pluginIds = new List<Guid>();
    364       foreach (var neededPlugin in neededPlugins) {
    365         Plugin foundPlugin = alreadyUploadedPlugins.SingleOrDefault(p => p.Name == neededPlugin.Name && p.Version == neededPlugin.Version);
    366         if (foundPlugin == null) {
    367           foundPlugin = onlinePlugins.SingleOrDefault(p => p.Name == neededPlugin.Name && p.Version == neededPlugin.Version);
    368           if (useLocalPlugins || foundPlugin == null) {
    369             Plugin p = CreatePlugin(neededPlugin, useLocalPlugins);
    370             List<PluginData> pd = CreatePluginDatas(neededPlugin);
    371             p.Id = service.AddPlugin(p, pd);
    372             alreadyUploadedPlugins.Add(p);
    373             pluginIds.Add(p.Id);
    374           } else {
    375             pluginIds.Add(foundPlugin.Id);
    376           }
    377         } else {
    378           pluginIds.Add(foundPlugin.Id);
    379         }
    380       }
    381       return pluginIds;
    382     }
    383 
    384     private static Plugin CreatePlugin(IPluginDescription plugin, bool useLocalPlugins) {
    385       return new Plugin() { Name = plugin.Name, Version = plugin.Version, IsLocal = useLocalPlugins };
    386     }
    387 
    388     private static List<PluginData> CreatePluginDatas(IPluginDescription plugin) {
    389       List<PluginData> pluginDatas = new List<PluginData>();
    390 
    391       foreach (IPluginFile pf in plugin.Files) {
    392         PluginData pluginData = new PluginData();
    393 
    394         pluginData.Data = File.ReadAllBytes(pf.Name);
    395         pluginData.FileName = Path.GetFileName(pf.Name);
    396         pluginDatas.Add(pluginData);
    397       }
    398       return pluginDatas;
    399     }
    400     #endregion
    401 
    402352    public static OptimizerJob LoadOptimizerJob(Guid jobId) {
    403353      JobData jobData = ServiceLocator.Instance.CallHiveService(s => s.GetJobData(jobId));
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveJobClient.cs

    r5793 r5958  
    491491      };
    492492
    493       CollectDeclaringPlugins(plugins, usedTypes);
     493      PluginUtil.CollectDeclaringPlugins(plugins, usedTypes);
    494494
    495495      return jobData;
    496496    }
    497497
    498     private void CollectDeclaringPlugins(List<IPluginDescription> plugins, IEnumerable<Type> usedTypes) {
    499       foreach (Type type in usedTypes) {
    500         var plugin = ApplicationManager.Manager.GetDeclaringPlugin(type);
    501         if (plugin != null && !plugins.Contains(plugin)) {
    502           plugins.Add(plugin);
    503           CollectPluginDependencies(plugins, plugin);
    504         }
    505       }
    506     }
    507 
    508     private void CollectPluginDependencies(List<IPluginDescription> plugins, IPluginDescription plugin) {
    509       if (plugin == null) return;
    510       foreach (var dependency in plugin.Dependencies) {
    511         if (!plugins.Contains(dependency)) {
    512           plugins.Add(dependency);
    513           CollectPluginDependencies(plugins, dependency);
    514         }
    515       }
    516     }
    517498
    518499    #region Events
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/HeuristicLab.Clients.Hive-3.4.csproj

    r5955 r5958  
    130130    <Compile Include="ExperimentManager\HiveJobClient.cs" />
    131131    <Compile Include="ExperimentManager\JobResultPoller.cs" />
     132    <Compile Include="PersistenceUtil.cs" />
     133    <Compile Include="PluginUtil.cs" />
    132134    <Compile Include="Progress\IProgress.cs" />
    133135    <Compile Include="Progress\IProgressReporter.cs" />
    134136    <Compile Include="Progress\Progress.cs" />
    135137    <Compile Include="Properties\AssemblyInfo.cs" />
    136     <Compile Include="PersistenceUtil.cs" />
    137138    <None Include="Properties\AssemblyInfo.cs.frame" />
    138139    <Compile Include="Exceptions\ServiceClientFactoryException.cs" />
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/Jobs/OptimizerJob.cs

    r5782 r5958  
    2222using System;
    2323using System.Collections.Generic;
     24using System.Drawing;
    2425using HeuristicLab.Common;
    2526using HeuristicLab.Core;
     
    3132  [Item("Optimizer Job", "Represents Job which executes a IOptimizer object.")]
    3233  [StorableClass]
    33   public class OptimizerJob : DeepCloneable, IJob {
    34     public virtual bool IsParallelizable {
     34  public class OptimizerJob : AbstractJob {
     35    public override bool IsParallelizable {
    3536      get { return this.Optimizer is Optimization.Experiment || this.Optimizer is BatchRun; }
    3637    }
     
    4243      set {
    4344        if (value != optimizer) {
    44           if (optimizer != null) DeregisterEvents();
     45          if (optimizer != null) DeregisterOptimizerEvents();
    4546          optimizer = value;
    46           if (optimizer != null) RegisterEvents();
     47          if (optimizer != null) RegisterOptimizerEvents();
    4748          OnOptimizerChanged();
    48         }
    49       }
    50     }
    51 
    52     [Storable]
    53     protected ILog log;
    54     public ILog Log {
    55       get { return log; }
    56     }
    57 
    58     [Storable]
    59     protected bool computeInParallel;
    60     public bool ComputeInParallel {
    61       get { return computeInParallel; }
    62       set {
    63         if (computeInParallel != value) {
    64           computeInParallel = value;
    65           OnComputeInParallelChanged();
    6649        }
    6750      }
     
    7558    }
    7659
    77     [Storable]
    78     private bool collectChildJobs;
    79     public bool CollectChildJobs {
    80       get { return collectChildJobs; }
    81       set { collectChildJobs = value; }
    82     }
    83 
    84     public OptimizerJob() {
    85       this.log = new Log();
     60    public OptimizerJob() : base() {
     61     
    8662    }
    8763    public OptimizerJob(IOptimizer optimizer)
     
    10278      : base(original, cloner) {
    10379      this.Optimizer = cloner.Clone(original.Optimizer);
    104       this.log = cloner.Clone(original.Log);
    105       this.ComputeInParallel = original.ComputeInParallel;
    10680      this.IndexInParentOptimizerList = original.IndexInParentOptimizerList;
    10781      this.CollectChildJobs = original.CollectChildJobs;
    108       this.RegisterEvents();
     82      this.RegisterOptimizerEvents();
    10983    }
    11084    public override IDeepCloneable Clone(Cloner cloner) {
     
    11488    [StorableHook(HookType.AfterDeserialization)]
    11589    protected virtual void AfterDeserialization() {
    116       RegisterEvents();
     90      RegisterOptimizerEvents();
    11791    }
    11892
     
    133107    #region IJob Members
    134108
    135     public virtual ExecutionState ExecutionState {
     109    public override ExecutionState ExecutionState {
    136110      get { return optimizer.ExecutionState; }
    137111    }
    138112
    139     public TimeSpan ExecutionTime {
     113    public override TimeSpan ExecutionTime {
    140114      get { return optimizer.ExecutionTime; }
    141115    }
    142116
    143     public virtual void Prepare() {
     117    public override void Prepare() {
    144118      optimizer.Prepare();
    145119    }
    146120
    147     public virtual void Start() {
     121    public override void Start() {
    148122      if ((optimizer is Optimization.Experiment && OptimizerAsExperiment.Optimizers.Count == 0) || // experiment would not fire OnStopped if it has 0 optimizers
    149123          (optimizer is Optimization.BatchRun && OptimizerAsBatchRun.Optimizer == null)) { // batchrun would not fire OnStopped if algorithm == null
     
    154128    }
    155129
    156     public virtual void Pause() {
     130    public override void Pause() {
    157131      optimizer.Pause();
    158132    }
    159133
    160     public virtual void Stop() {
     134    public override void Stop() {
    161135      optimizer.Stop();
    162136    }
    163137
    164     public virtual void Resume(IEnumerable<IJob> childJobs) {
     138    public override void Resume(IEnumerable<IJob> childJobs) {
    165139      OnJobStopped();
    166140    }
    167 
    168     public event EventHandler JobStopped;
    169     protected virtual void OnJobStopped() {
    170       EventHandler handler = JobStopped;
    171       if (handler != null) handler(this, EventArgs.Empty);
    172     }
    173 
    174     public event EventHandler JobPaused;
    175     protected virtual void OnJobPaused() {
    176       EventHandler handler = JobPaused;
    177       if (handler != null) handler(this, EventArgs.Empty);
    178     }
    179 
    180     public event EventHandler JobFailed;
    181     protected virtual void OnJobFailed(EventArgs<Exception> e) {
    182       EventHandler handler = JobFailed;
    183       if (handler != null) handler(this, e);
    184     }
    185 
    186     public event EventHandler<EventArgs<IJob>> NewChildJob;
    187     protected virtual void OnNewChildJob(IJob job) {
    188       EventHandler<EventArgs<IJob>> handler = NewChildJob;
    189       if (handler != null) handler(this, new EventArgs<IJob>(job));
    190     }
    191 
    192     public event EventHandler WaitForChildJobs;
    193     protected virtual void OnWaitForChildJobs() {
    194       EventHandler handler = WaitForChildJobs;
    195       if (handler != null) handler(this, EventArgs.Empty);
    196     }
    197 
    198     public event EventHandler DeleteChildJobs;
    199     protected virtual void OnDeleteChildJobs() {
    200       EventHandler handler = DeleteChildJobs;
    201       if (handler != null) handler(this, EventArgs.Empty);
    202     }
    203 
    204     public event EventHandler ComputeInParallelChanged;
    205     protected virtual void OnComputeInParallelChanged() {
    206       EventHandler handler = ComputeInParallelChanged;
    207       if (handler != null) handler(this, EventArgs.Empty);
    208     }
    209 
    210     public event EventHandler OptimizerChanged;
    211     protected virtual void OnOptimizerChanged() {
    212       EventHandler handler = OptimizerChanged;
    213       if (handler != null) handler(this, EventArgs.Empty);
    214     }
    215141    #endregion
    216142
    217143    #region Optimizer Events
    218     protected virtual void RegisterEvents() {
     144    protected virtual void RegisterOptimizerEvents() {
    219145      optimizer.Stopped += new EventHandler(optimizer_Stopped);
    220146      optimizer.Paused += new EventHandler(optimizer_Paused);
     
    227153    }
    228154
    229     protected virtual void DeregisterEvents() {
     155    protected virtual void DeregisterOptimizerEvents() {
    230156      optimizer.Stopped -= new EventHandler(optimizer_Stopped);
    231157      optimizer.Paused -= new EventHandler(optimizer_Paused);
    232158      optimizer.ExceptionOccurred -= new EventHandler<EventArgs<Exception>>(optimizer_ExceptionOccurred);
    233       optimizer.DescriptionChanged -= this.DescriptionChanged;
    234       optimizer.ItemImageChanged -= this.ItemImageChanged;
    235       optimizer.NameChanged -= this.NameChanged;
    236       optimizer.NameChanging -= this.NameChanging;
    237       optimizer.ToStringChanged -= this.ToStringChanged;
    238     }
    239 
    240     void optimizer_ToStringChanged(object sender, EventArgs e) {
     159      optimizer.DescriptionChanged -= new EventHandler(optimizer_DescriptionChanged);
     160      optimizer.ItemImageChanged -= new EventHandler(optimizer_ItemImageChanged);
     161      optimizer.NameChanged -= new EventHandler(optimizer_NameChanged);
     162      optimizer.NameChanging -= new EventHandler<CancelEventArgs<string>>(optimizer_NameChanging);
     163      optimizer.ToStringChanged -= new EventHandler(optimizer_ToStringChanged);
     164    }
     165
     166    protected void optimizer_ToStringChanged(object sender, EventArgs e) {
    241167      this.OnToStringChanged();
    242168    }
    243169
    244     void optimizer_NameChanging(object sender, CancelEventArgs<string> e) {
     170    protected void optimizer_NameChanging(object sender, CancelEventArgs<string> e) {
    245171      this.OnNameChanging(e.Value, e.Cancel);
    246172    }
    247173
    248     void optimizer_NameChanged(object sender, EventArgs e) {
     174    protected void optimizer_NameChanged(object sender, EventArgs e) {
    249175      this.OnNameChanged();
    250176    }
    251177
    252     void optimizer_ItemImageChanged(object sender, EventArgs e) {
     178    protected void optimizer_ItemImageChanged(object sender, EventArgs e) {
    253179      this.OnItemImageChanged();
    254180    }
    255181
    256     void optimizer_DescriptionChanged(object sender, EventArgs e) {
     182    protected void optimizer_DescriptionChanged(object sender, EventArgs e) {
    257183      this.OnDescriptionChanged();
    258184    }
     
    273199    #region INamedItem Members
    274200
    275     public bool CanChangeDescription {
     201    public override bool CanChangeDescription {
    276202      get { return optimizer.CanChangeDescription; }
    277203    }
    278204
    279     public bool CanChangeName {
     205    public override bool CanChangeName {
    280206      get { return optimizer.CanChangeName; }
    281207    }
    282208
    283     public string Description {
     209    public override string Description {
    284210      get { return optimizer.Description; }
    285211      set { optimizer.Description = value; }
    286212    }
    287213
    288     public string Name {
     214    public override string Name {
    289215      get { return optimizer.Name; }
    290216      set { optimizer.Name = value; }
    291217    }
    292218    #endregion
    293 
    294     #region Events
    295     public event EventHandler DescriptionChanged;
    296     protected virtual void OnDescriptionChanged() {
    297       var handler = DescriptionChanged;
    298       if (handler != null) handler(this, EventArgs.Empty);
    299     }
    300     public event EventHandler ItemImageChanged;
    301     protected virtual void OnItemImageChanged() {
    302       var handler = ItemImageChanged;
    303       if (handler != null) handler(this, EventArgs.Empty);
    304     }
    305     public event EventHandler ToStringChanged;
    306     protected virtual void OnToStringChanged() {
    307       var handler = ToStringChanged;
    308       if (handler != null) handler(this, EventArgs.Empty);
    309     }
    310     public event EventHandler NameChanged;
    311     protected virtual void OnNameChanged() {
    312       var handler = NameChanged;
    313       if (handler != null) handler(this, EventArgs.Empty);
    314     }
    315     public event EventHandler<CancelEventArgs<string>> NameChanging;
    316     protected virtual void OnNameChanging(string value, bool cancel) {
    317       var handler = NameChanging;
    318       if (handler != null) handler(this, new CancelEventArgs<string>(value, cancel));
    319     }
    320     public event EventHandler ExecutionTimeChanged;
    321     protected virtual void OnExecutionTimeChanged() {
    322       EventHandler handler = ExecutionTimeChanged;
    323       if (handler != null) handler(this, EventArgs.Empty);
    324     }
    325     public event EventHandler ExecutionStateChanged;
    326     protected virtual void OnExecutionStateChanged() {
    327       EventHandler handler = ExecutionStateChanged;
    328       if (handler != null) handler(this, EventArgs.Empty);
    329     }
    330     #endregion
    331 
     219   
    332220    #region IItem Members
    333221
    334     public string ItemDescription {
     222    public override string ItemDescription {
    335223      get { return optimizer.ItemDescription; }
    336224    }
    337225
    338     public System.Drawing.Image ItemImage {
     226    public override Image ItemImage {
    339227      get { return optimizer.ItemImage; }
    340228    }
    341229
    342     public string ItemName {
     230    public override string ItemName {
    343231      get { return optimizer.ItemName; }
    344232    }
    345233
    346     public Version ItemVersion {
     234    public override Version ItemVersion {
    347235      get { return optimizer.ItemVersion; }
    348236    }
    349 
    350     #endregion
    351 
    352     /// <summary>
    353     /// Gets the string representation of the current instance in the format: <c>Name: [null|Value]</c>.
    354     /// </summary>
    355     /// <returns>The current instance as a string.</returns>
    356     public override string ToString() {
    357       return Name;
    358     }
     237    #endregion
    359238  }
    360239}
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/PersistenceUtil.cs

    r5404 r5958  
    2020#endregion
    2121
     22using System;
     23using System.Collections.Generic;
    2224using System.IO;
     25using HeuristicLab.Persistence.Core;
    2326using HeuristicLab.Persistence.Default.Xml;
    24 using System.Collections.Generic;
    25 using HeuristicLab.PluginInfrastructure;
    26 using System;
    27 using HeuristicLab.Persistence.Core;
    2827
    2928namespace HeuristicLab.Clients.Hive {
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Hive 3.4.sln

    r5779 r5958  
    8888EndProject
    8989Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Hive Common", "Hive Common", "{70CE526B-B92C-4750-B3D3-A38C572042A8}"
     90EndProject
     91Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.HiveEngine", "HeuristicLab.HiveEngine", "{4596C5BB-CAB1-4C01-891F-4890F9F16CF8}"
     92EndProject
     93Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.HiveEngine-3.4", "HeuristicLab.HiveEngine\3.4\HeuristicLab.HiveEngine-3.4.csproj", "{2C036542-5451-4A23-AFF6-87575C7BAFE7}"
    9094EndProject
    9195Global
     
    366370    {BEB9D81C-3878-4F2E-BBAF-5B24AA90AEEE}.Release|x86.ActiveCfg = Release|x86
    367371    {BEB9D81C-3878-4F2E-BBAF-5B24AA90AEEE}.Release|x86.Build.0 = Release|x86
     372    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
     373    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
     374    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     375    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Debug|Mixed Platforms.Build.0 = Debug|x64
     376    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Debug|x64.ActiveCfg = Debug|x64
     377    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Debug|x64.Build.0 = Debug|x64
     378    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Debug|x86.ActiveCfg = Debug|x86
     379    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Debug|x86.Build.0 = Debug|x86
     380    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
     381    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Release|Any CPU.Build.0 = Release|Any CPU
     382    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Release|Mixed Platforms.ActiveCfg = Release|x64
     383    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Release|Mixed Platforms.Build.0 = Release|x64
     384    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Release|x64.ActiveCfg = Release|x64
     385    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Release|x64.Build.0 = Release|x64
     386    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Release|x86.ActiveCfg = Release|x86
     387    {2C036542-5451-4A23-AFF6-87575C7BAFE7}.Release|x86.Build.0 = Release|x86
    368388  EndGlobalSection
    369389  GlobalSection(SolutionProperties) = preSolution
     
    371391  EndGlobalSection
    372392  GlobalSection(NestedProjects) = preSolution
     393    {F98A1740-9AC9-4D36-A582-6A2D0D06978D} = {70CE526B-B92C-4750-B3D3-A38C572042A8}
     394    {8C0D9F39-397F-4DBE-856F-BC4DC0FE23F8} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
     395    {C4CBD11E-1B83-464A-B0AD-0DC0FF7E57AA} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
     396    {464D70B8-2D91-485C-B622-22E4A4891C68} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
     397    {BA8001DE-E83C-4B1F-8B2E-2695C4222491} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
     398    {28711372-0255-4883-9BED-81E150D73880} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
     399    {7C4B1DE4-FC9A-4448-BCF8-3CB3FA3CB8FA} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
     400    {989FE92B-484E-41EE-87E2-6A24AF0381D8} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
     401    {EC2C8109-6E1E-4C88-9A2B-908CFF2EF4AC} = {E69A1E5F-63F7-493F-BBA2-163D6E321D44}
     402    {CF9DA321-AC1B-4FD3-9EC3-67BC6B861BDE} = {E69A1E5F-63F7-493F-BBA2-163D6E321D44}
     403    {0CA6706D-A569-45DE-A85C-4158891CC1BC} = {E69A1E5F-63F7-493F-BBA2-163D6E321D44}
     404    {17187EAC-5D8C-4B11-9CEA-D88F71B59658} = {E69A1E5F-63F7-493F-BBA2-163D6E321D44}
     405    {14424A16-48D4-445E-80BF-DDF617548BBB} = {E69A1E5F-63F7-493F-BBA2-163D6E321D44}
     406    {E1D6C801-892A-406A-B606-F158E36DD3C3} = {E46F2FC8-8C15-48E5-96DB-FF2DB36BC509}
     407    {8D40A723-139D-40E4-8BBA-4CB309A9E4B9} = {E46F2FC8-8C15-48E5-96DB-FF2DB36BC509}
     408    {B5EF1E5A-9F3D-40B9-B4B0-30AADF2E2CEB} = {E46F2FC8-8C15-48E5-96DB-FF2DB36BC509}
    373409    {A2061FFC-C564-4872-AA06-56B002DDEDBF} = {063D87A6-1085-49F6-A195-5D1890CBE994}
    374410    {02766ECC-D0F5-4115-9ECA-47409167B638} = {A2061FFC-C564-4872-AA06-56B002DDEDBF}
    375     {989FE92B-484E-41EE-87E2-6A24AF0381D8} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
    376     {464D70B8-2D91-485C-B622-22E4A4891C68} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
    377     {7C4B1DE4-FC9A-4448-BCF8-3CB3FA3CB8FA} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
    378     {BA8001DE-E83C-4B1F-8B2E-2695C4222491} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
    379     {C4CBD11E-1B83-464A-B0AD-0DC0FF7E57AA} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
    380     {8C0D9F39-397F-4DBE-856F-BC4DC0FE23F8} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
    381     {28711372-0255-4883-9BED-81E150D73880} = {622F8E95-CDFC-4B4E-BBA7-3EE4E47DB52A}
    382     {0CA6706D-A569-45DE-A85C-4158891CC1BC} = {E69A1E5F-63F7-493F-BBA2-163D6E321D44}
    383     {CF9DA321-AC1B-4FD3-9EC3-67BC6B861BDE} = {E69A1E5F-63F7-493F-BBA2-163D6E321D44}
    384     {14424A16-48D4-445E-80BF-DDF617548BBB} = {E69A1E5F-63F7-493F-BBA2-163D6E321D44}
    385     {EC2C8109-6E1E-4C88-9A2B-908CFF2EF4AC} = {E69A1E5F-63F7-493F-BBA2-163D6E321D44}
    386     {17187EAC-5D8C-4B11-9CEA-D88F71B59658} = {E69A1E5F-63F7-493F-BBA2-163D6E321D44}
    387     {B5EF1E5A-9F3D-40B9-B4B0-30AADF2E2CEB} = {E46F2FC8-8C15-48E5-96DB-FF2DB36BC509}
    388     {8D40A723-139D-40E4-8BBA-4CB309A9E4B9} = {E46F2FC8-8C15-48E5-96DB-FF2DB36BC509}
    389     {E1D6C801-892A-406A-B606-F158E36DD3C3} = {E46F2FC8-8C15-48E5-96DB-FF2DB36BC509}
    390     {A0EB9657-4D57-4CC1-A309-EC010D7F9EAB} = {9963403B-3CB9-48E0-9FEB-B1CE12C31601}
    391411    {54491B6A-1EDD-4C76-90A7-338BA9C1FBF8} = {9963403B-3CB9-48E0-9FEB-B1CE12C31601}
    392412    {BEB9D81C-3878-4F2E-BBAF-5B24AA90AEEE} = {9963403B-3CB9-48E0-9FEB-B1CE12C31601}
    393     {F98A1740-9AC9-4D36-A582-6A2D0D06978D} = {70CE526B-B92C-4750-B3D3-A38C572042A8}
     413    {A0EB9657-4D57-4CC1-A309-EC010D7F9EAB} = {9963403B-3CB9-48E0-9FEB-B1CE12C31601}
     414    {2C036542-5451-4A23-AFF6-87575C7BAFE7} = {4596C5BB-CAB1-4C01-891F-4890F9F16CF8}
    394415  EndGlobalSection
    395416EndGlobal
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Hive/3.4/HeuristicLab.Hive-3.4.csproj

    r5852 r5958  
    8585    <Reference Include="System" />
    8686    <Reference Include="System.Core" />
     87    <Reference Include="System.Drawing" />
    8788    <Reference Include="System.Xml.Linq" />
    8889    <Reference Include="System.Data.DataSetExtensions" />
     
    9596    <Compile Include="HeuristicLabHivePlugin.cs" />
    9697    <Compile Include="IJob.cs" />
     98    <Compile Include="AbstractJob.cs" />
    9799    <Compile Include="Properties\AssemblyInfo.cs" />
    98100  </ItemGroup>
Note: See TracChangeset for help on using the changeset viewer.