Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/05/10 10:31:40 (15 years ago)
Author:
gkronber
Message:

Copied refactored plugin infrastructure from branch and merged changeset r2586:2589 from branch into the trunk. #799

Location:
trunk/sources/HeuristicLab.Hive.Server/3.2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Hive.Server/3.2/HiveServerApplication.cs

    r2065 r2591  
    2323using System.Collections.Generic;
    2424using System.Text;
     25using System.Linq;
    2526using System.Windows.Forms;
    2627using HeuristicLab.PluginInfrastructure;
     
    3334
    3435namespace HeuristicLab.Hive.Server {
    35   [ClassInfo(Name = "Hive Server",
    36       Description = "Server application for the distributed hive engine.",
    37       AutoRestart = true)]
     36  [Application("Hive Server", "Server application for the distributed hive engine.", true)]
    3837  public class HiveServerApplication : ApplicationBase {
    3938    public const string STR_ClientCommunicator = "ClientCommunicator";
     
    4140    public const string STR_ExecutionEngineFacade = "ExecutionEngineFacade";
    4241
    43     private DiscoveryService discService = new DiscoveryService();
    4442    private Dictionary<string, ServiceHost> runningServices = new Dictionary<string, ServiceHost>();
    4543    private NetTcpBinding binding = (NetTcpBinding)WcfSettings.GetBinding();
     
    5250      All
    5351    }
    54    
     52
    5553    private bool AddMexEndpoint(ServiceHost serviceHost) {
    5654      if (serviceHost != null) {
     
    6967      string curServiceHost = "";
    7068      Uri uriTcp;
    71       IClientFacade[] clientCommunicatorInstances = discService.GetInstances<IClientFacade>();
    72       IServerConsoleFacade[] serverConsoleInstances = discService.GetInstances<IServerConsoleFacade>();
    73       IExecutionEngineFacade[] executionEngineInstances = discService.GetInstances<IExecutionEngineFacade>();
     69      IEnumerable<IClientFacade> clientCommunicatorInstances = ApplicationManager.Manager.GetInstances<IClientFacade>();
     70      IEnumerable<IServerConsoleFacade> serverConsoleInstances = ApplicationManager.Manager.GetInstances<IServerConsoleFacade>();
     71      IEnumerable<IExecutionEngineFacade> executionEngineInstances = ApplicationManager.Manager.GetInstances<IExecutionEngineFacade>();
    7472      ServiceHost serviceHost = null;
    7573      switch (svc) {
    7674        case Services.ClientCommunicator:
    77           if (clientCommunicatorInstances.Length > 0) {
    78             uriTcp = new Uri("net.tcp://" + ipAddress + ":" + port + "/HiveServer/"); 
    79             serviceHost = new ServiceHost(clientCommunicatorInstances[0].GetType(), uriTcp);
     75          if (clientCommunicatorInstances.Count() > 0) {
     76            uriTcp = new Uri("net.tcp://" + ipAddress + ":" + port + "/HiveServer/");
     77            serviceHost = new ServiceHost(clientCommunicatorInstances.First().GetType(), uriTcp);
    8078            serviceHost.AddServiceEndpoint(typeof(IClientFacade), streamedBinding, STR_ClientCommunicator);
    8179            curServiceHost = STR_ClientCommunicator;
     
    8381          break;
    8482        case Services.ServerConsoleFacade:
    85           if (serverConsoleInstances.Length > 0) {
     83          if (serverConsoleInstances.Count() > 0) {
    8684            uriTcp = new Uri("net.tcp://" + ipAddress + ":" + port + "/HiveServerConsole/");
    87             serviceHost = new ServiceHost(serverConsoleInstances[0].GetType(), uriTcp);
     85            serviceHost = new ServiceHost(serverConsoleInstances.First().GetType(), uriTcp);
    8886            serviceHost.AddServiceEndpoint(typeof(IServerConsoleFacade), binding, STR_ServerConsoleFacade);
    8987            curServiceHost = STR_ServerConsoleFacade;
     
    9189          break;
    9290        case Services.ExecutionEngineFacade:
    93           if (executionEngineInstances.Length > 0) {
     91          if (executionEngineInstances.Count() > 0) {
    9492            uriTcp = new Uri("net.tcp://" + ipAddress + ":" + port + "/ExecutionEngine/");
    95             serviceHost = new ServiceHost(executionEngineInstances[0].GetType(), uriTcp);
     93            serviceHost = new ServiceHost(executionEngineInstances.First().GetType(), uriTcp);
    9694            serviceHost.AddServiceEndpoint(typeof(IExecutionEngineFacade), streamedBinding, STR_ExecutionEngineFacade);
    9795            curServiceHost = STR_ExecutionEngineFacade;
     
    143141            break;
    144142      }
    145      
     143
    146144      //Start services and record their base address
    147145      Dictionary<string, Uri> baseAddrDict = new Dictionary<string, Uri>();
     
    153151        StartService(Services.ExecutionEngineFacade, addresses[index], WcfSettings.DEFAULTPORT));
    154152
    155       ILifecycleManager[] lifecycleManagers =  discService.GetInstances<ILifecycleManager>();
    156       if (lifecycleManagers.Length > 0) {
     153      IEnumerable<ILifecycleManager> lifecycleManagers = ApplicationManager.Manager.GetInstances<ILifecycleManager>();
     154      if (lifecycleManagers.Count() > 0) {
    157155        ILifecycleManager lifecycleManager =
    158           lifecycleManagers[0];
     156          lifecycleManagers.First();
    159157
    160158        lifecycleManager.Init();
    161159        Form mainForm = new MainForm(baseAddrDict);
    162160        Application.Run(mainForm);
    163        
     161
    164162        lifecycleManager.Shutdown();
    165163      }
  • trunk/sources/HeuristicLab.Hive.Server/3.2/HiveServerPlugin.cs

    r1530 r2591  
    2727
    2828namespace HeuristicLab.Hive.Server {
    29   [ClassInfo(Name = "HeuristicLab.Hive.Server-3.2")]
    30   [PluginFile(Filename = "HeuristicLab.Hive.Server-3.2.dll", Filetype = PluginFileType.Assembly)]
    31   [Dependency(Dependency = "HeuristicLab.Core-3.2")]
    32   [Dependency(Dependency = "HeuristicLab.Hive.Contracts-3.2")]
     29  [Plugin("HeuristicLab.Hive.Server-3.2")]
     30  [PluginFile("HeuristicLab.Hive.Server-3.2.dll", PluginFileType.Assembly)]
     31  [PluginDependency("HeuristicLab.Core-3.2")]
     32  [PluginDependency("HeuristicLab.Hive.Contracts-3.2")]
    3333  public class HiveServerPlugin : PluginBase {
    3434  }
Note: See TracChangeset for help on using the changeset viewer.