Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/HivePluginInfoDto.cs
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/HivePluginInfoDto.cs	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/HivePluginInfoDto.cs	(revision 4810)
@@ -72,7 +72,7 @@
     }
 
-    public static List<HivePluginInfoDto> FindPluginsNeeded(Type type) {
+    public static List<HivePluginInfoDto> FindPluginsNeeded(IDeepCloneable obj) {
       return (
-        from p in PluginUtil.GetDeclaringPlugins(type)
+        from p in PluginUtil.GetDeclaringPlugins(obj)
         select new HivePluginInfoDto() {
           Name = p.Name,
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.ExperimentManager/3.3/HiveExperiment.cs
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.ExperimentManager/3.3/HiveExperiment.cs	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.ExperimentManager/3.3/HiveExperiment.cs	(revision 4810)
@@ -72,5 +72,5 @@
       get { return log; }
     }
-    
+
     private string resourceIds;
     public string ResourceIds {
@@ -83,5 +83,5 @@
       }
     }
-    
+
     private bool isPollingResults;
     public bool IsPollingResults {
@@ -465,9 +465,14 @@
             LogMessage(hj.JobDto.Id, "Downloading optimizer for job");
             OptimizerJob optimizerJob = LoadOptimizerJob(hj.JobDto.Id);
-            if (jobResult.ParentJobId.HasValue) {
-              HiveJob parentHiveJob = HiveJob.GetHiveJobByJobId(jobResult.ParentJobId.Value);
-              parentHiveJob.UpdateChildOptimizer(optimizerJob, hj.JobDto.Id);
+            if (optimizerJob == null) {
+              // something bad happened to this job. set to finished to allow the rest beeing downloaded
+              hj.IsFinishedOptimizerDownloaded = true;
             } else {
-              this.HiveJob.IsFinishedOptimizerDownloaded = true;
+              if (jobResult.ParentJobId.HasValue) {
+                HiveJob parentHiveJob = HiveJob.GetHiveJobByJobId(jobResult.ParentJobId.Value);
+                parentHiveJob.UpdateChildOptimizer(optimizerJob, hj.JobDto.Id);
+              } else {
+                this.HiveJob.IsFinishedOptimizerDownloaded = true;
+              }
             }
           }
@@ -584,5 +589,11 @@
         jobCount++;
         progress.Status = string.Format("Deserializing {0} of {1} jobs ({2} kb)...", jobCount, totalJobCount, allSerializedJobs[jobResult.Id].SerializedJobData.Count() / 1024);
-        OptimizerJob optimizerJob = SerializedJob.Deserialize<OptimizerJob>(allSerializedJobs[jobResult.Id].SerializedJobData);
+        OptimizerJob optimizerJob = null;
+        try {
+          optimizerJob = SerializedJob.Deserialize<OptimizerJob>(allSerializedJobs[jobResult.Id].SerializedJobData);
+        }
+        catch {
+          optimizerJob = null;
+        }
         progress.ProgressValue = (double)jobCount / totalJobCount;
         HiveJob childHiveJob = new HiveJob(optimizerJob, false);
@@ -598,5 +609,10 @@
       using (Disposable<IClientFacade> service = ServiceLocator.Instance.StreamedClientFacadePool.GetService()) {
         ResponseObject<SerializedJob> serializedJob = service.Obj.GetLastSerializedResult(jobId);
-        return SerializedJob.Deserialize<OptimizerJob>(serializedJob.Obj.SerializedJobData);
+        try {
+          return SerializedJob.Deserialize<OptimizerJob>(serializedJob.Obj.SerializedJobData);
+        }
+        catch {
+          return null;
+        }
       }
     }
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.ExperimentManager/3.3/HiveJob.cs
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.ExperimentManager/3.3/HiveJob.cs	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.ExperimentManager/3.3/HiveJob.cs	(revision 4810)
@@ -31,4 +31,6 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.PluginInfrastructure.Manager;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Hive.ExperimentManager {
@@ -79,5 +81,5 @@
           DergisterOptimizerEvents();
           job = value;
-          if (job.ExecutionState == ExecutionState.Stopped) {
+          if (job != null && job.ExecutionState == ExecutionState.Stopped) {
             IsFinishedOptimizerDownloaded = true;
           }
@@ -142,5 +144,10 @@
       this.syncJobsWithOptimizers = autoCreateChildHiveJobs;
       this.JobDto = serializedJob.JobInfo;
-      this.Job = SerializedJob.Deserialize<OptimizerJob>(serializedJob.SerializedJobData);
+      try {
+        this.Job = SerializedJob.Deserialize<OptimizerJob>(serializedJob.SerializedJobData);
+      }
+      catch {
+        this.Job = null;
+      }
       this.syncJobsWithOptimizers = true;
     }
@@ -163,5 +170,5 @@
     /// </summary>
     private void UpdateChildHiveJobs() {
-      if (Job != null && syncJobsWithOptimizers) {
+      if (Job != null && Job.Optimizer != null && syncJobsWithOptimizers) {
         if (Job.Optimizer is Optimization.Experiment) {
           Optimization.Experiment experiment = (Optimization.Experiment)Job.Optimizer;
@@ -184,5 +191,5 @@
 
     private void RegisterOptimizerEvents() {
-      if (Job != null) {
+      if (Job != null && Job.Optimizer != null) {
         if (Job.Optimizer is Optimization.Experiment) {
           Optimization.Experiment experiment = Job.OptimizerAsExperiment;
@@ -288,10 +295,12 @@
       this.childHiveJobs.Add(hiveJob);
       syncJobsWithOptimizers = false;
-      if (this.Job.Optimizer is Optimization.Experiment) {
-        if (!this.Job.OptimizerAsExperiment.Optimizers.Contains(hiveJob.Job.Optimizer)) {
-          UpdateOptimizerInExperiment(this.Job.OptimizerAsExperiment, hiveJob.Job);
-        }
-      } else if (this.Job.Optimizer is Optimization.BatchRun) {
-        UpdateOptimizerInBatchRun(this.Job.OptimizerAsBatchRun, hiveJob.Job);
+      if (this.Job != null && hiveJob.Job != null) {
+        if (this.Job.Optimizer is Optimization.Experiment) {
+          if (!this.Job.OptimizerAsExperiment.Optimizers.Contains(hiveJob.Job.Optimizer)) {
+            UpdateOptimizerInExperiment(this.Job.OptimizerAsExperiment, hiveJob.Job);
+          }
+        } else if (this.Job.Optimizer is Optimization.BatchRun) {
+          UpdateOptimizerInBatchRun(this.Job.OptimizerAsBatchRun, hiveJob.Job);
+        }
       }
       syncJobsWithOptimizers = true;
@@ -308,14 +317,16 @@
       bool childIsFinishedOptimizerDownloaded = false;
 
-      if (this.Job.Optimizer is Optimization.Experiment) {
-        UpdateOptimizerInExperiment(this.Job.OptimizerAsExperiment, optimizerJob);
-        childIsFinishedOptimizerDownloaded = true;
-      } else if (this.Job.Optimizer is Optimization.BatchRun) {
-        UpdateOptimizerInBatchRun(this.Job.OptimizerAsBatchRun, optimizerJob);
-        if (this.Job.OptimizerAsBatchRun.Repetitions == this.Job.Optimizer.Runs.Count) {
+      if (this.Job != null && this.Job.Optimizer != null) {
+        if (this.Job.Optimizer is Optimization.Experiment) {
+          UpdateOptimizerInExperiment(this.Job.OptimizerAsExperiment, optimizerJob);
           childIsFinishedOptimizerDownloaded = true;
-        }
-      } else {
-        childIsFinishedOptimizerDownloaded = optimizerJob.Optimizer.ExecutionState == ExecutionState.Stopped;
+        } else if (this.Job.Optimizer is Optimization.BatchRun) {
+          UpdateOptimizerInBatchRun(this.Job.OptimizerAsBatchRun, optimizerJob);
+          if (this.Job.OptimizerAsBatchRun.Repetitions == this.Job.Optimizer.Runs.Count) {
+            childIsFinishedOptimizerDownloaded = true;
+          }
+        } else {
+          childIsFinishedOptimizerDownloaded = optimizerJob.Optimizer.ExecutionState == ExecutionState.Stopped;
+        }
       }
 
@@ -374,5 +385,5 @@
     /// </summary>
     internal void SetIndexInParentOptimizerList(HiveJob parentHiveJob) {
-      if (parentHiveJob != null) {
+      if (parentHiveJob != null && parentHiveJob.Job != null && parentHiveJob.Job.Optimizer != null) {
         if (parentHiveJob.Job.Optimizer is Optimization.Experiment) {
           this.Job.IndexInParentOptimizerList = parentHiveJob.Job.OptimizerAsExperiment.Optimizers.IndexOf(this.Job.Optimizer);
@@ -389,5 +400,5 @@
 
     public override string ToString() {
-      if (jobDto != null) {
+      if (job != null) {
         return job.ToString();
       } else {
@@ -420,4 +431,7 @@
     /// </param>
     public SerializedJob GetAsSerializedJob(bool withoutChildOptimizers) {
+      if (this.job == null || this.job.Optimizer == null)
+        return null;
+
       byte[] jobByteArray;
       if (withoutChildOptimizers && this.Job.Optimizer is Optimization.Experiment) {
@@ -450,5 +464,8 @@
     /// </summary>
     private void UpdateRequiredPlugins() {
-      this.JobDto.PluginsNeeded = HivePluginInfoDto.FindPluginsNeeded(job.GetType());
+      if (job != null) {
+        //this.JobDto.PluginsNeeded = HivePluginInfoDto.FindPluginsNeeded(job);
+        this.JobDto.PluginsNeeded = ApplicationManager.Manager.Plugins.Select(x => new HivePluginInfoDto { Name = x.Name, Version = x.Version }).ToList();
+      }
     }
 
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.ExperimentManager/3.3/app.config
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.ExperimentManager/3.3/app.config	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.ExperimentManager/3.3/app.config	(revision 4810)
@@ -19,15 +19,4 @@
       </setting>
     </HeuristicLab.Hive.ExperimentManager.Properties.Settings>
-    <HeuristicLab.Hive.Experiment.Properties.Settings>
-      <setting name="ResourceIds" serializeAs="String">
-        <value>HEAL</value>
-      </setting>
-      <setting name="HiveUsername" serializeAs="String">
-        <value>cneumuel</value>
-      </setting>
-      <setting name="HivePassword" serializeAs="String">
-        <value />
-      </setting>
-    </HeuristicLab.Hive.Experiment.Properties.Settings>
   </userSettings>
   <system.serviceModel>
@@ -56,12 +45,12 @@
     </bindings>
     <client>
-      <endpoint address="net.tcp://localhost:9001/Hive/ClientService.svc" behaviorConfiguration="ClientServiceBehaviour" binding="netTcpBinding" bindingConfiguration="ClientTcpStreamedEndpoint" contract="HeuristicLab.Hive.Contracts.Interfaces.IClientFacade" name="ClientTcpStreamedEndpoint">
+      <endpoint address="net.tcp://services.heuristiclab.com:8000/Hive-3.3/ClientService.svc" behaviorConfiguration="ClientServiceBehaviour" binding="netTcpBinding" bindingConfiguration="ClientTcpStreamedEndpoint" contract="HeuristicLab.Hive.Contracts.Interfaces.IClientFacade" name="ClientTcpStreamedEndpoint">
         <identity>
-          <dns value="localhost"/>
+          <dns value="services.heuristiclab.com"/>
         </identity>
       </endpoint>
-      <endpoint address="http://localhost:9000/Hive/ClientService.svc" binding="wsHttpBinding" behaviorConfiguration="ClientServiceBehaviour" bindingConfiguration="ClientHttpEndpoint" contract="HeuristicLab.Hive.Contracts.Interfaces.IClientFacade" name="ClientHttpEndpoint">
+      <endpoint address="http://services.heuristiclab.com/Hive-3.3/ClientService.svc" binding="wsHttpBinding" behaviorConfiguration="ClientServiceBehaviour" bindingConfiguration="ClientHttpEndpoint" contract="HeuristicLab.Hive.Contracts.Interfaces.IClientFacade" name="ClientHttpEndpoint">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAfEKvcVixnJay+q4hCPFuO0JL5TQgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhCNN5wrUcXMmE/9xwp4TYa9MAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMTAxOTEwNTMxNVoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXwC5TGcAffd/0oAWHtm0s6YXVXEgXgb1AYmBkkkhkKIFJG/e/Z0KSYbJepmSJD44W3oOAVm+x1DAsZxU79HahDYgWCuHLMm1TLpwSmYOQ0kV3pGHWHhiWV7h7oGLds/eqZ2EOpaNGryfEPnrA4VmxY91vV5/2BTeVSWG6F8lRKQIDAQABo0kwRzBFBgNVHQEEPjA8gBAR7kBnMRHO5gzThEqda0wWoRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghCNN5wrUcXMmE/9xwp4TYa9MAkGBSsOAwIdBQADgYEAoPwEG4QTDXhlxERNDfsZmM2IhEpV42ppz1kEah2oYKDa/ElIMVtvqLv6flVtg18ENN/mEJWiHZ3NyP3qr2Pip+sh+/2WBiSbOaukES/CM7OJn9kJCImH7M/xqM8pxqY8IfgM6iBVrVj9uHqj3j2BBck+cYY8fKyh3CFifMIp6ac="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
         </identity>
       </endpoint>
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.JobBase/3.3/PluginUtil.cs
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.JobBase/3.3/PluginUtil.cs	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.JobBase/3.3/PluginUtil.cs	(revision 4810)
@@ -24,17 +24,22 @@
 using System.Reflection;
 using HeuristicLab.PluginInfrastructure;
+using System.Linq;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Hive.JobBase {
   public static class PluginUtil {
     #region Required Plugin Search
-    
+
     /// <summary>
     /// Returns a list of plugins in which the type itself and all members 
     /// of the type are declared. Objectgraph is searched recursively.
     /// </summary>
-    public static IEnumerable<IPluginDescription> GetDeclaringPlugins(Type type) {
+    public static IEnumerable<IPluginDescription> GetDeclaringPlugins(IDeepCloneable obj) {
+      object clone = obj.Clone();
       HashSet<Type> types = new HashSet<Type>();
-      FindTypes(type, types, "HeuristicLab.");
-      return GetDeclaringPlugins(types);
+      HashSet<object> objects = new HashSet<object>();
+      string namespaceStart = "HeuristicLab.";
+      FindTypesInObject(clone, objects, types, namespaceStart, 10);
+      return GetDeclaringPlugins(types, namespaceStart);
     }
 
@@ -42,7 +47,8 @@
     /// Returns the plugins (including dependencies) in which the given types are declared
     /// </summary>
-    public static IEnumerable<IPluginDescription> GetDeclaringPlugins(IEnumerable<Type> types) {
+    public static IEnumerable<IPluginDescription> GetDeclaringPlugins(IEnumerable<Type> types, string namespaceStart) {
       HashSet<IPluginDescription> plugins = new HashSet<IPluginDescription>();
-      foreach (Type t in types) {
+      var hlTypes = types.Where(x => x.Namespace != null && x.Namespace.StartsWith(namespaceStart));
+      foreach (Type t in hlTypes) {
         FindDeclaringPlugins(ApplicationManager.Manager.GetDeclaringPlugin(t), plugins);
       }
@@ -68,14 +74,25 @@
     /// </summary>
     /// <param name="type">the type to be searched</param>
-    /// <param name="types">found types will be stored there, needed in order to avoid duplicates</param>
-    /// <param name="namespaceStart">only types from namespaces which start with this will be searched and added</param>
-    public static void FindTypes(Type type, HashSet<Type> types, string namespaceStart) {
-      if (!types.Contains(type) && type.Namespace.StartsWith(namespaceStart)) {
-        types.Add(type);
+    /// <param name="foundTypes">found types will be stored there, needed in order to avoid duplicates</param>
+    public static void FindTypes(Type type, HashSet<Type> foundTypes, string namespaceStart, int nonNamespaceSearchDepth) {
+      if (type.Namespace != null && type.Namespace.StartsWith(namespaceStart)) {
+        nonNamespaceSearchDepth = 10;
+      } else {
+        nonNamespaceSearchDepth--;
+      }
+
+      if (!foundTypes.Contains(type) && nonNamespaceSearchDepth > 0) {
+        foundTypes.Add(type);
+
+        if (type.IsGenericType) {
+          foreach (Type t in type.GetGenericArguments()) {
+            FindTypes(t, foundTypes, namespaceStart, nonNamespaceSearchDepth);
+          }
+        }
 
         // constructors
         foreach (ConstructorInfo info in type.GetConstructors()) {
           foreach (ParameterInfo paramInfo in info.GetParameters()) {
-            FindTypes(paramInfo.ParameterType, types, namespaceStart);
+            FindTypes(paramInfo.ParameterType, foundTypes, namespaceStart, nonNamespaceSearchDepth);
           }
         }
@@ -83,21 +100,11 @@
         // interfaces
         foreach (Type t in type.GetInterfaces()) {
-          FindTypes(t, types, namespaceStart);
+          FindTypes(t, foundTypes, namespaceStart, nonNamespaceSearchDepth);
         }
 
         // events
         foreach (EventInfo info in type.GetEvents()) {
-          FindTypes(info.EventHandlerType, types, namespaceStart);
-          FindTypes(info.DeclaringType, types, namespaceStart);
-        }
-
-        // properties
-        foreach (PropertyInfo info in type.GetProperties()) {
-          FindTypes(info.PropertyType, types, namespaceStart);
-        }
-
-        // fields
-        foreach (FieldInfo info in type.GetFields()) {
-          FindTypes(info.FieldType, types, namespaceStart);
+          FindTypes(info.EventHandlerType, foundTypes, namespaceStart, nonNamespaceSearchDepth);
+          FindTypes(info.DeclaringType, foundTypes, namespaceStart, nonNamespaceSearchDepth);
         }
 
@@ -105,9 +112,44 @@
         foreach (MethodInfo info in type.GetMethods()) {
           foreach (ParameterInfo paramInfo in info.GetParameters()) {
-            FindTypes(paramInfo.ParameterType, types, namespaceStart);
+            FindTypes(paramInfo.ParameterType, foundTypes, namespaceStart, nonNamespaceSearchDepth);
           }
-          FindTypes(info.ReturnType, types, namespaceStart);
+          FindTypes(info.ReturnType, foundTypes, namespaceStart, nonNamespaceSearchDepth);
+        }
+
+        // base type
+        if (type.BaseType != null) {
+          FindTypes(type.BaseType, foundTypes, namespaceStart, nonNamespaceSearchDepth);
         }
       }
+    }
+
+    public static void FindTypesInObject(object obj, HashSet<object> visitedObjects, HashSet<Type> types, string namespaceStart, int nonNamespaceSearchDepth) {
+      Type type = obj.GetType();
+      FindTypes(type, types, namespaceStart, nonNamespaceSearchDepth);
+
+      if (type.Namespace != null && type.Namespace.StartsWith(namespaceStart)) {
+        nonNamespaceSearchDepth = 10;
+      } else {
+        nonNamespaceSearchDepth--;
+      }
+
+      if (!visitedObjects.Contains(obj) && nonNamespaceSearchDepth > 0) {
+        visitedObjects.Add(obj);
+
+        // fields
+        foreach (FieldInfo info in GetAllFields(type)) {
+          var value = info.GetValue(obj);
+          if (value == null) {
+            FindTypes(info.FieldType, types, namespaceStart, nonNamespaceSearchDepth);
+          } else {
+            FindTypesInObject(value, visitedObjects, types, namespaceStart, nonNamespaceSearchDepth);
+          }
+        }
+      }
+    }
+
+    public static IEnumerable<FieldInfo> GetAllFields(Type t) {
+      BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.FlattenHierarchy;
+      return t.GetFields(flags);
     }
     #endregion
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Console/3.3/app.config
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Console/3.3/app.config	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Console/3.3/app.config	(revision 4810)
@@ -26,7 +26,7 @@
     </bindings>
     <client>
-      <endpoint address="http://localhost:9000/Hive/ServerConsoleService.svc" behaviorConfiguration="ServerConsoleBehaviour" binding="wsHttpBinding" bindingConfiguration="ServerConsoleHttpEndpoint" contract="HeuristicLab.Hive.Contracts.Interfaces.IServerConsoleFacade" name="ServerConsoleHttpEndpoint">
+      <endpoint address="http://services.heuristiclab.com/Hive-3.3/ServerConsoleService.svc" behaviorConfiguration="ServerConsoleBehaviour" binding="wsHttpBinding" bindingConfiguration="ServerConsoleHttpEndpoint" contract="HeuristicLab.Hive.Contracts.Interfaces.IServerConsoleFacade" name="ServerConsoleHttpEndpoint">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAfEKvcVixnJay+q4hCPFuO0JL5TQgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhCNN5wrUcXMmE/9xwp4TYa9MAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMTAxOTEwNTMxNVoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXwC5TGcAffd/0oAWHtm0s6YXVXEgXgb1AYmBkkkhkKIFJG/e/Z0KSYbJepmSJD44W3oOAVm+x1DAsZxU79HahDYgWCuHLMm1TLpwSmYOQ0kV3pGHWHhiWV7h7oGLds/eqZ2EOpaNGryfEPnrA4VmxY91vV5/2BTeVSWG6F8lRKQIDAQABo0kwRzBFBgNVHQEEPjA8gBAR7kBnMRHO5gzThEqda0wWoRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghCNN5wrUcXMmE/9xwp4TYa9MAkGBSsOAwIdBQADgYEAoPwEG4QTDXhlxERNDfsZmM2IhEpV42ppz1kEah2oYKDa/ElIMVtvqLv6flVtg18ENN/mEJWiHZ3NyP3qr2Pip+sh+/2WBiSbOaukES/CM7OJn9kJCImH7M/xqM8pxqY8IfgM6iBVrVj9uHqj3j2BBck+cYY8fKyh3CFifMIp6ac="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
         </identity>
       </endpoint>
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/LifecycleManager.cs
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/LifecycleManager.cs	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/LifecycleManager.cs	(revision 4810)
@@ -72,5 +72,4 @@
       pm.DiscoverAndCheckPlugins();
       pm.InitializeLifetimeService();
-
     }
 
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/HeuristicLab.Hive.Slave.Communication-3.3.csproj
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/HeuristicLab.Hive.Slave.Communication-3.3.csproj	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/HeuristicLab.Hive.Slave.Communication-3.3.csproj	(revision 4810)
@@ -125,4 +125,6 @@
   </ItemGroup>
   <ItemGroup>
+    <None Include="app-services.heuristiclab.com.config" />
+    <None Include="app-localhost.config" />
     <None Include="app.config" />
     <None Include="HeuristicLab.snk" />
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/app.config
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/app.config	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/app.config	(revision 4810)
@@ -30,12 +30,12 @@
     </bindings>
     <client>
-      <endpoint address="http://localhost:9000/Hive/SlaveService.svc" binding="wsHttpBinding" behaviorConfiguration="SlaveServiceBehaviour" bindingConfiguration="SlaveHttpEndpoint" contract="SlaveFacade.ISlaveFacade" name="SlaveHttpEndpoint">
+      <endpoint address="http://services.heuristiclab.com/Hive-3.3/SlaveService.svc" binding="wsHttpBinding" behaviorConfiguration="SlaveServiceBehaviour" bindingConfiguration="SlaveHttpEndpoint" contract="SlaveFacade.ISlaveFacade" name="SlaveHttpEndpoint">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAfEKvcVixnJay+q4hCPFuO0JL5TQgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhCNN5wrUcXMmE/9xwp4TYa9MAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMTAxOTEwNTMxNVoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXwC5TGcAffd/0oAWHtm0s6YXVXEgXgb1AYmBkkkhkKIFJG/e/Z0KSYbJepmSJD44W3oOAVm+x1DAsZxU79HahDYgWCuHLMm1TLpwSmYOQ0kV3pGHWHhiWV7h7oGLds/eqZ2EOpaNGryfEPnrA4VmxY91vV5/2BTeVSWG6F8lRKQIDAQABo0kwRzBFBgNVHQEEPjA8gBAR7kBnMRHO5gzThEqda0wWoRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghCNN5wrUcXMmE/9xwp4TYa9MAkGBSsOAwIdBQADgYEAoPwEG4QTDXhlxERNDfsZmM2IhEpV42ppz1kEah2oYKDa/ElIMVtvqLv6flVtg18ENN/mEJWiHZ3NyP3qr2Pip+sh+/2WBiSbOaukES/CM7OJn9kJCImH7M/xqM8pxqY8IfgM6iBVrVj9uHqj3j2BBck+cYY8fKyh3CFifMIp6ac="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
         </identity>
       </endpoint>
-      <endpoint address="net.tcp://localhost:9001/Hive/SlaveService.svc" behaviorConfiguration="SlaveServiceBehaviour" binding="netTcpBinding" bindingConfiguration="SlaveTcpStreamedEndpoint" contract="SlaveFacade.ISlaveFacade" name="SlaveTcpStreamedEndpoint">
+      <endpoint address="net.tcp://services.heuristiclab.com:8000/Hive-3.3/SlaveService.svc" behaviorConfiguration="SlaveServiceBehaviour" binding="netTcpBinding" bindingConfiguration="SlaveTcpStreamedEndpoint" contract="SlaveFacade.ISlaveFacade" name="SlaveTcpStreamedEndpoint">
         <identity>
-          <dns value="localhost"/>
+          <dns value="services.heuristiclab.com"/>
         </identity>
       </endpoint>
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Console/3.3/HiveSlaveConsole.cs
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Console/3.3/HiveSlaveConsole.cs	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Console/3.3/HiveSlaveConsole.cs	(revision 4810)
@@ -104,5 +104,5 @@
     private void InitLogFileReader() {
       //logFileReader = new LogFileReader(AppDomain.CurrentDomain.BaseDirectory + @"/Hive.Slave.log");
-      logFileReader = new LogServiceReader(slaveCommunicator);
+      logFileReader = new LogServiceReader();
       logFileReader.MoreData += new MoreDataHandler(logFileReader_MoreData);
       logFileReader.Start();
@@ -524,5 +524,11 @@
         isfired = true;
         refreshTimer.Stop();
-        DialogResult res = MessageBox.Show(body, caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
+        
+        DialogResult res;
+        if (e != null) {
+          res = MessageBox.Show(body + "\n" + e.Message + ": " + e.StackTrace, caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
+        } else {
+          res = MessageBox.Show(body + " (no exception available)", caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
+        }
         if (res == DialogResult.OK)
           this.Close();
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Console/3.3/LogServiceReader.cs
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Console/3.3/LogServiceReader.cs	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Console/3.3/LogServiceReader.cs	(revision 4810)
@@ -5,14 +5,13 @@
 using System.Windows.Forms;
 using HeuristicLab.Core;
+using HeuristicLab.Hive.Slave.Console.SlaveConsoleService;
 
 namespace HeuristicLab.Hive.Slave.Console {
   internal class LogServiceReader : ILogReader {
 
-    private SlaveConsoleService.SlaveConsoleCommunicatorClient slaveCommunicator;
     private Timer timer;
     private int messageCount = 0;
 
-    public LogServiceReader(SlaveConsoleService.SlaveConsoleCommunicatorClient slaveCommunicator) {
-      this.slaveCommunicator = slaveCommunicator;
+    public LogServiceReader() {
     }
 
@@ -26,8 +25,13 @@
     void timer_Tick(object sender, EventArgs e) {
       try {
-        var messages = slaveCommunicator.GetLogMessages();
-        var newMessages = messages.GetRange(messageCount, messages.Count - messageCount);
-        messageCount = messages.Count;
-        OnMoreData(newMessages);
+        using (var slaveClient = new SlaveConsoleCommunicatorClient()) {
+          var messages = slaveClient.GetLogMessages();
+          if (messages.Count < messageCount) {
+            messageCount = 0; // log got cleared
+          }
+          var newMessages = messages.GetRange(messageCount, messages.Count - messageCount);
+          messageCount = messages.Count;
+          OnMoreData(newMessages);
+        }
       }
       catch { }
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Console/3.3/app.config
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Console/3.3/app.config	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Console/3.3/app.config	(revision 4810)
@@ -17,5 +17,5 @@
       <netTcpBinding>
         <binding name="SlaveConsoleTcpEndpoint" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxBufferSize="65536" maxReceivedMessageSize="65536">
-          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
+          <readerQuotas maxDepth="32" maxStringContentLength="104857600" maxArrayLength="104857600" maxBytesPerRead="104857600" maxNameTableCharCount="104857600"/>
           <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/>
           <security mode="None">
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/Core.cs
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/Core.cs	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/Core.cs	(revision 4810)
@@ -184,4 +184,8 @@
           break;
 
+        case MessageContainer.MessageType.JobFailed:
+          SendFinishedJob(container.JobId);
+          break;
+
         //When the timeslice is up
         case MessageContainer.MessageType.UptimeLimitDisconnect:
@@ -292,5 +296,5 @@
 
         byte[] sJob = engines[jId].GetFinishedJob();
-
+        
         try {
           Logger.Info("Sending the finished job with id: " + jId);
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/PluginCache.cs
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/PluginCache.cs	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/PluginCache.cs	(revision 4810)
@@ -137,5 +137,4 @@
         }
 
-        Logger.Debug("deleted old files");
         Logger.Debug("creating new files");
         foreach (HivePluginFile pf in updateablePlugin.PluginFiles) {
@@ -145,5 +144,4 @@
         }
 
-        Logger.Debug("created new files");
         DoUpdateRun();
       }
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/app.config
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/app.config	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/app.config	(revision 4810)
@@ -26,5 +26,6 @@
     <bindings>
       <netTcpBinding>
-        <binding name="SlaveConsoleTcpBinding">
+        <binding name="SlaveConsoleTcpBinding" maxReceivedMessageSize="104857600">
+          <readerQuotas maxArrayLength="104857600" maxBytesPerRead="104857600" maxStringContentLength="104857600"/>
           <security mode="None">
             <transport/>
@@ -35,5 +36,5 @@
     <services>
       <service behaviorConfiguration="SlaveConsoleServiceBehaviour" name="HeuristicLab.Hive.Slave.Core.SlaveConsoleService.SlaveConsoleCommunicator">
-        <endpoint binding="netTcpBinding" bindingConfiguration="SlaveConsoleTcpBinding" name="SlaveConsoleTcpEndpoint" contract="HeuristicLab.Hive.Slave.Core.SlaveConsoleService.Interfaces.ISlaveConsoleCommunicator"/>
+        <endpoint binding="netTcpBinding" bindingConfiguration="SlaveConsoleTcpBinding" name="SlaveConsoleTcpEndpoint" contract="HeuristicLab.Hive.Slave.Core.SlaveConsoleService.Interfaces.ISlaveConsoleCommunicator" />
         <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" name="SlaveConsoleTcpMexEndpoint" contract="IMetadataExchange"/>
         <host>
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.ExecutionEngine/3.3/Executor.cs
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.ExecutionEngine/3.3/Executor.cs	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.ExecutionEngine/3.3/Executor.cs	(revision 4810)
@@ -28,4 +28,5 @@
 using HeuristicLab.Hive.JobBase;
 using HeuristicLab.Hive.Slave.Common;
+using HeuristicLab.Persistence.Core;
 
 namespace HeuristicLab.Hive.Slave.ExecutionEngine {
@@ -49,5 +50,5 @@
     public ExecutionState ExecutionState {
       get {
-        return Job.ExecutionState;
+        return Job != null ? Job.ExecutionState : Core.ExecutionState.Stopped;
       }
     }
@@ -55,5 +56,5 @@
     public TimeSpan ExecutionTime {
       get {
-        return Job.ExecutionTime;
+        return Job != null ? Job.ExecutionTime : new TimeSpan(0, 0, 0);
       }
     }
@@ -84,5 +85,5 @@
         }
       }
-      catch (OutOfMemoryException e) {
+      catch (Exception e) {
         this.currentException = e;
         Queue.AddMessage(new MessageContainer(MessageContainer.MessageType.JobFailed, JobId));
@@ -94,5 +95,5 @@
         Job.Start();
       }
-      catch (OutOfMemoryException e) {
+      catch (Exception e) {
         this.currentException = e;
         Queue.AddMessage(new MessageContainer(MessageContainer.MessageType.JobFailed, JobId));
@@ -133,5 +134,5 @@
           CoresNeeded = 1,
           MemoryNeeded = 0,
-          PluginsNeeded = HivePluginInfoDto.FindPluginsNeeded(e.Value.GetType()),
+          PluginsNeeded = HivePluginInfoDto.FindPluginsNeeded(e.Value),
         },
         SerializedJobData = jobByteArray
@@ -164,5 +165,5 @@
       HeuristicLab.Common.EventArgs<Exception> ex = (HeuristicLab.Common.EventArgs<Exception>)e;
       currentException = ex.Value;
-      Queue.AddMessage(new MessageContainer(MessageContainer.MessageType.FinishedJob, JobId));
+      Queue.AddMessage(new MessageContainer(MessageContainer.MessageType.JobFailed, JobId));
     }
 
@@ -193,10 +194,11 @@
 
     public byte[] GetFinishedJob() {
-      //Job isn't finished!
+      if (Job == null)
+        return new byte[0];
+
       if (Job.ExecutionState == Core.ExecutionState.Started) {
-        throw new InvalidStateException("Job is still running");
-      } else {
-        byte[] jobArr = SerializedJob.Serialize(Job);
-        return jobArr;
+        throw new InvalidStateException("Job is still running"); //Job isn't finished!
+      } else {
+        return SerializedJob.Serialize(Job);
       }
     }
@@ -208,5 +210,10 @@
 
     private void RestoreJobObject(byte[] sjob) {
-      Job = SerializedJob.Deserialize<IJob>(sjob);
+      try {
+        Job = SerializedJob.Deserialize<IJob>(sjob);
+      }
+      catch {
+        Job = null;
+      }
     }
 
@@ -216,5 +223,6 @@
 
     public void Dispose() {
-      DeregisterJobEvents();
+      if(Job != null)
+        DeregisterJobEvents();
       Queue = null;
       Job = null;
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/App_Code/HiveServerModule.cs
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/App_Code/HiveServerModule.cs	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/App_Code/HiveServerModule.cs	(revision 4810)
@@ -5,9 +5,9 @@
 using System.Web;
 using System.Threading;
-using HeuristicLab.Tracing;
 using System.IO;
 using HeuristicLab.Hive.Contracts.Interfaces;
 using HeuristicLab.PluginInfrastructure;
 using HeuristicLab.PluginInfrastructure.Manager;
+using HeuristicLab.Hive.Tracing;
 
 namespace HeuristicLab.Hive.Server.Core.IISModules {
@@ -15,10 +15,14 @@
     private static object locker = new object();
     private static ILifecycleManager lifecycleManager;
-    private static PluginManager pm;
+    private static ISlaveCommunicator slaveCommunicator;
 
     public void Init(HttpApplication context) {
       lock (locker) {
+        Logger.Info("Starting HiveServerModule");
         if (lifecycleManager == null) {
           lifecycleManager = ServiceLocator.GetLifecycleManager();
+        }
+        if (slaveCommunicator == null) {
+          slaveCommunicator = ServiceLocator.GetSlaveCommunicator();
         }
       }
@@ -27,4 +31,5 @@
     public void Dispose() {
       lock (locker) {
+        Logger.Info("Disposing HiveServerModule");
         if(lifecycleManager != null) lifecycleManager.Stop();
       }
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/App_Data/Plugins/HeuristicLab.log
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/App_Data/Plugins/HeuristicLab.log	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/App_Data/Plugins/HeuristicLab.log	(revision 4810)
@@ -1,33 +1,22 @@
-312  [HeuristicLab 3.3.exe/8] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD33D.tmp took 1,56001 seconds
-312  [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Tracing.Logger (null) - logging initialized 09.11.2010 15:53:02
-495  [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Roaming\HeuristicLab\Clipboard\00000001.hl took 2,0436131 seconds
-1020 [HeuristicLab 3.3.exe/8] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD33D.tmp took 0,624004 seconds
-1455 [HeuristicLab 3.3.exe/8] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD33D.tmp took 0,4836031 seconds
-1771 [HeuristicLab 3.3.exe/8] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD33D.tmp took 0,312002 seconds
-2093 [HeuristicLab 3.3.exe/8] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD33D.tmp took 0,3900025 seconds
-2346 [HeuristicLab 3.3.exe/8] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD33D.tmp took 0,2496016 seconds
-2859 [HeuristicLab 3.3.exe/8] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD33D.tmp took 0,5772037 seconds
-3145 [HeuristicLab 3.3.exe/8] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD33D.tmp took 0,312002 seconds
-3576 [HeuristicLab 3.3.exe/8] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD33D.tmp took 0,4992032 seconds
-301  [HeuristicLab 3.3.exe/5] INFO  HeuristicLab.Tracing.Logger (null) - logging initialized 09.11.2010 15:54:09
-301  [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD946.tmp took 1,4820095 seconds
-484  [HeuristicLab 3.3.exe/5] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Roaming\HeuristicLab\Clipboard\00000001.hl took 1,9812127 seconds
-1000 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD946.tmp took 0,5772037 seconds
-1514 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD946.tmp took 0,6708043 seconds
-1788 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD946.tmp took 0,2652017 seconds
-2034 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD946.tmp took 0,2808018 seconds
-2277 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD946.tmp took 0,2340015 seconds
-2840 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD946.tmp took 0,6084039 seconds
-3133 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD946.tmp took 0,2808018 seconds
-3512 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpD946.tmp took 0,3588023 seconds
-299  [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpCD73.tmp took 1,4976096 seconds
-299  [HeuristicLab 3.3.exe/5] INFO  HeuristicLab.Tracing.Logger (null) - logging initialized 09.11.2010 15:55:12
-482  [HeuristicLab 3.3.exe/5] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Roaming\HeuristicLab\Clipboard\00000001.hl took 2,0436131 seconds
-991  [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpCD73.tmp took 0,6084039 seconds
-1508 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpCD73.tmp took 0,7644049 seconds
-1785 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpCD73.tmp took 0,2808018 seconds
-2031 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpCD73.tmp took 0,2964019 seconds
-2277 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpCD73.tmp took 0,2964019 seconds
-2817 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpCD73.tmp took 0,6084039 seconds
-3114 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpCD73.tmp took 0,2964019 seconds
-3493 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmpCD73.tmp took 0,3900025 seconds
+320  [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp78CD.tmp took 1,4664094 seconds
+322  [HeuristicLab 3.3.exe/5] INFO  HeuristicLab.Tracing.Logger (null) - logging initialized 15.11.2010 14:44:44
+531  [HeuristicLab 3.3.exe/5] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Roaming\HeuristicLab\Clipboard\00000001.hl took 2,0436131 seconds
+1033 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp78CD.tmp took 0,4992032 seconds
+1554 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp78CD.tmp took 0,780005 seconds
+1878 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp78CD.tmp took 0,2808018 seconds
+2119 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp78CD.tmp took 0,2496016 seconds
+2361 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp78CD.tmp took 0,2340015 seconds
+2902 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp78CD.tmp took 0,6552042 seconds
+3193 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp78CD.tmp took 0,312002 seconds
+3566 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp78CD.tmp took 0,3588023 seconds
+276  [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp29F6.tmp took 1,4820095 seconds
+291  [HeuristicLab 3.3.exe/5] INFO  HeuristicLab.Tracing.Logger (null) - logging initialized 15.11.2010 14:47:40
+456  [HeuristicLab 3.3.exe/5] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Roaming\HeuristicLab\Clipboard\00000001.hl took 2,0436131 seconds
+961  [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp29F6.tmp took 0,624004 seconds
+1411 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp29F6.tmp took 0,468003 seconds
+1677 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp29F6.tmp took 0,2808018 seconds
+1910 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp29F6.tmp took 0,2652017 seconds
+2423 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp29F6.tmp took 0,6864044 seconds
+2950 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp29F6.tmp took 1,0296066 seconds
+3246 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp29F6.tmp took 0,5616036 seconds
+3770 [HeuristicLab 3.3.exe/6] INFO  HeuristicLab.Persistence.Default.Xml.XmlParser (null) - deserialization of C:\Users\S0920454044\AppData\Local\Temp\tmp29F6.tmp took 1,0296066 seconds
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/App_Data/Plugins/Mono Cecil License.txt
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/App_Data/Plugins/Mono Cecil License.txt	(revision 4810)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/App_Data/Plugins/Mono Cecil License.txt	(revision 4810)
@@ -0,0 +1,22 @@
+﻿Copyright (c) 2008 - 2010, Jb Evain
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
Index: anches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/App_Data/Plugins/Mono License.txt
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/App_Data/Plugins/Mono License.txt	(revision 4809)
+++ 	(revision )
@@ -1,22 +1,0 @@
-﻿Copyright (c) <year> <copyright holders>
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
Index: /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/Web.config
===================================================================
--- /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/Web.config	(revision 4809)
+++ /branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HiveWeb/Web.config	(revision 4810)
@@ -7,5 +7,5 @@
   </configSections>
   
-  <!--
+  
   <system.diagnostics>
     <sources>
@@ -32,10 +32,10 @@
     </sources>
     <sharedListeners>
-      <add initializeData="c:\ch\svn\branches\heuristiclab.hive\sources\heuristiclab.hive\hiveweb\web_messages.svclog"
+      <add initializeData="c:\ch\stuff\log\web_messages.svclog"
         type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
         name="ServiceModelMessageLoggingListener" traceOutputOptions="DateTime, Timestamp">
         <filter type="" />
       </add>
-      <add initializeData="c:\ch\svn\branches\heuristiclab.hive\sources\heuristiclab.hive\hiveweb\web_tracelog.svclog"
+      <add initializeData="c:\ch\stuff\log\web_tracelog.svclog"
         type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
         name="ServiceModelTraceListener" traceOutputOptions="DateTime, Timestamp">
@@ -44,5 +44,5 @@
     </sharedListeners>
   </system.diagnostics>
-  -->
+  
   
   <applicationSettings>
