Free cookie consent management tool by TermsFeed Policy Generator

Changeset 3006


Ignore:
Timestamp:
03/11/10 18:23:52 (15 years ago)
Author:
gkronber
Message:

Implemented deployment service on servdev.heuristiclab.com and changed all service references and configurations to point to the service address. Improved GUI of installation manager. Implemented user name authentication and authorization for the deployment service. #860 (Deployment server for plugin installation from web locations)

Files:
34 added
11 deleted
34 edited

Legend:

Unmodified
Added
Removed
  • branches/DeploymentServer Prototype/HeuristicLab.Services/CreateDeploymentServiceDatabase.sql

    r2767 r3006  
    1 USE [master]
     1USE [HeuristicLab.Deployment]
    22GO
    3 
    4 /****** Object:  Database [HeuristicLab.PluginStore]    Script Date: 02/08/2010 19:01:45 ******/
    5 CREATE DATABASE [HeuristicLab.PluginStore] ON  PRIMARY
    6 ( NAME = N'HeuristicLab.PluginStore', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\HeuristicLab.PluginStore.mdf' , SIZE = 22528KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
    7  LOG ON
    8 ( NAME = N'HeuristicLab.PluginStore_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\HeuristicLab.PluginStore_log.ldf' , SIZE = 2816KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
     3/****** Object:  User [DeploymentService]    Script Date: 03/11/2010 17:43:43 ******/
     4CREATE USER [DeploymentService] FOR LOGIN [SERVDEV\DeploymentService] WITH DEFAULT_SCHEMA=[dbo]
    95GO
    10 
    11 ALTER DATABASE [HeuristicLab.PluginStore] SET COMPATIBILITY_LEVEL = 90
    12 GO
    13 
    14 IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
    15 begin
    16 EXEC [HeuristicLab.PluginStore].[dbo].[sp_fulltext_database] @action = 'enable'
    17 end
    18 GO
    19 
    20 ALTER DATABASE [HeuristicLab.PluginStore] SET ANSI_NULL_DEFAULT OFF
    21 GO
    22 
    23 ALTER DATABASE [HeuristicLab.PluginStore] SET ANSI_NULLS OFF
    24 GO
    25 
    26 ALTER DATABASE [HeuristicLab.PluginStore] SET ANSI_PADDING OFF
    27 GO
    28 
    29 ALTER DATABASE [HeuristicLab.PluginStore] SET ANSI_WARNINGS OFF
    30 GO
    31 
    32 ALTER DATABASE [HeuristicLab.PluginStore] SET ARITHABORT OFF
    33 GO
    34 
    35 ALTER DATABASE [HeuristicLab.PluginStore] SET AUTO_CLOSE OFF
    36 GO
    37 
    38 ALTER DATABASE [HeuristicLab.PluginStore] SET AUTO_CREATE_STATISTICS ON
    39 GO
    40 
    41 ALTER DATABASE [HeuristicLab.PluginStore] SET AUTO_SHRINK OFF
    42 GO
    43 
    44 ALTER DATABASE [HeuristicLab.PluginStore] SET AUTO_UPDATE_STATISTICS ON
    45 GO
    46 
    47 ALTER DATABASE [HeuristicLab.PluginStore] SET CURSOR_CLOSE_ON_COMMIT OFF
    48 GO
    49 
    50 ALTER DATABASE [HeuristicLab.PluginStore] SET CURSOR_DEFAULT  GLOBAL
    51 GO
    52 
    53 ALTER DATABASE [HeuristicLab.PluginStore] SET CONCAT_NULL_YIELDS_NULL OFF
    54 GO
    55 
    56 ALTER DATABASE [HeuristicLab.PluginStore] SET NUMERIC_ROUNDABORT OFF
    57 GO
    58 
    59 ALTER DATABASE [HeuristicLab.PluginStore] SET QUOTED_IDENTIFIER OFF
    60 GO
    61 
    62 ALTER DATABASE [HeuristicLab.PluginStore] SET RECURSIVE_TRIGGERS OFF
    63 GO
    64 
    65 ALTER DATABASE [HeuristicLab.PluginStore] SET  DISABLE_BROKER
    66 GO
    67 
    68 ALTER DATABASE [HeuristicLab.PluginStore] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
    69 GO
    70 
    71 ALTER DATABASE [HeuristicLab.PluginStore] SET DATE_CORRELATION_OPTIMIZATION OFF
    72 GO
    73 
    74 ALTER DATABASE [HeuristicLab.PluginStore] SET TRUSTWORTHY OFF
    75 GO
    76 
    77 ALTER DATABASE [HeuristicLab.PluginStore] SET ALLOW_SNAPSHOT_ISOLATION OFF
    78 GO
    79 
    80 ALTER DATABASE [HeuristicLab.PluginStore] SET PARAMETERIZATION SIMPLE
    81 GO
    82 
    83 ALTER DATABASE [HeuristicLab.PluginStore] SET READ_COMMITTED_SNAPSHOT OFF
    84 GO
    85 
    86 ALTER DATABASE [HeuristicLab.PluginStore] SET  READ_WRITE
    87 GO
    88 
    89 ALTER DATABASE [HeuristicLab.PluginStore] SET RECOVERY SIMPLE
    90 GO
    91 
    92 ALTER DATABASE [HeuristicLab.PluginStore] SET  MULTI_USER
    93 GO
    94 
    95 ALTER DATABASE [HeuristicLab.PluginStore] SET PAGE_VERIFY CHECKSUM 
    96 GO
    97 
    98 ALTER DATABASE [HeuristicLab.PluginStore] SET DB_CHAINING OFF
    99 GO
    100 
    101 USE [HeuristicLab.PluginStore]
    102 GO
    103 
    104 /****** Object:  Table [dbo].[Dependencies]    Script Date: 02/08/2010 19:02:19 ******/
     6/****** Object:  Table [dbo].[Plugin]    Script Date: 03/11/2010 17:43:45 ******/
    1057SET ANSI_NULLS ON
    1068GO
    107 
    1089SET QUOTED_IDENTIFIER ON
    10910GO
    110 
    111 CREATE TABLE [dbo].[Dependencies](
    112   [PluginId] [bigint] NOT NULL,
    113   [DependencyId] [bigint] NOT NULL,
    114  CONSTRAINT [PK_Dependencies] PRIMARY KEY CLUSTERED
    115 (
    116   [PluginId] ASC,
    117   [DependencyId] ASC
    118 )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    119 ) ON [PRIMARY]
    120 
    121 GO
    122 
    123 ALTER TABLE [dbo].[Dependencies]  WITH CHECK ADD  CONSTRAINT [FK_Dependencies_Plugin] FOREIGN KEY([DependencyId])
    124 REFERENCES [dbo].[Plugin] ([Id])
    125 GO
    126 
    127 ALTER TABLE [dbo].[Dependencies] CHECK CONSTRAINT [FK_Dependencies_Plugin]
    128 GO
    129 
    130 ALTER TABLE [dbo].[Dependencies]  WITH CHECK ADD  CONSTRAINT [FK_Dependencies_Plugin2] FOREIGN KEY([PluginId])
    131 REFERENCES [dbo].[Plugin] ([Id])
    132 GO
    133 
    134 ALTER TABLE [dbo].[Dependencies] CHECK CONSTRAINT [FK_Dependencies_Plugin2]
    135 GO
    136 
    137 
    138 USE [HeuristicLab.PluginStore]
    139 GO
    140 
    141 /****** Object:  Table [dbo].[Plugin]    Script Date: 02/08/2010 19:02:48 ******/
    142 SET ANSI_NULLS ON
    143 GO
    144 
    145 SET QUOTED_IDENTIFIER ON
    146 GO
    147 
    14811CREATE TABLE [dbo].[Plugin](
    14912  [Id] [bigint] IDENTITY(1,1) NOT NULL,
    15013  [Name] [nvarchar](300) NOT NULL,
    15114  [Version] [nvarchar](50) NOT NULL,
     15  [ContactName] [text] NULL,
     16  [ContactEmail] [text] NULL,
     17  [License] [text] NULL,
    15218 CONSTRAINT [PK_Plugin] PRIMARY KEY CLUSTERED
    15319(
     
    15925  [Version] ASC
    16026)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    161 ) ON [PRIMARY]
    162 
     27) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    16328GO
    164 
    165 
    166 USE [HeuristicLab.PluginStore]
    167 GO
    168 
    169 /****** Object:  Table [dbo].[PluginPackage]    Script Date: 02/08/2010 19:02:53 ******/
     29/****** Object:  Table [dbo].[Product]    Script Date: 03/11/2010 17:43:45 ******/
    17030SET ANSI_NULLS ON
    17131GO
    172 
    17332SET QUOTED_IDENTIFIER ON
    17433GO
    175 
    176 CREATE TABLE [dbo].[PluginPackage](
    177   [PluginId] [bigint] NOT NULL,
    178   [FileName] [text] NOT NULL,
    179   [Data] [image] NOT NULL,
    180  CONSTRAINT [PK_PluginPackage] PRIMARY KEY CLUSTERED
    181 (
    182   [PluginId] ASC
    183 )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    184 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    185 
    186 GO
    187 
    188 ALTER TABLE [dbo].[PluginPackage]  WITH CHECK ADD  CONSTRAINT [FK_PluginPackage_Plugin] FOREIGN KEY([PluginId])
    189 REFERENCES [dbo].[Plugin] ([Id])
    190 GO
    191 
    192 ALTER TABLE [dbo].[PluginPackage] CHECK CONSTRAINT [FK_PluginPackage_Plugin]
    193 GO
    194 
    195 
    196 
    197 USE [HeuristicLab.PluginStore]
    198 GO
    199 
    200 /****** Object:  Table [dbo].[Product]    Script Date: 02/08/2010 19:02:56 ******/
    201 SET ANSI_NULLS ON
    202 GO
    203 
    204 SET QUOTED_IDENTIFIER ON
    205 GO
    206 
    20734CREATE TABLE [dbo].[Product](
    20835  [Id] [bigint] IDENTITY(1,1) NOT NULL,
     
    21946)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    22047) ON [PRIMARY]
    221 
    22248GO
    223 
    224 
    225 USE [HeuristicLab.PluginStore]
    226 GO
    227 
    228 /****** Object:  Table [dbo].[ProductPlugin]    Script Date: 02/08/2010 19:03:01 ******/
     49/****** Object:  Table [dbo].[ProductPlugin]    Script Date: 03/11/2010 17:43:45 ******/
    22950SET ANSI_NULLS ON
    23051GO
    231 
    23252SET QUOTED_IDENTIFIER ON
    23353GO
    234 
    23554CREATE TABLE [dbo].[ProductPlugin](
    23655  [ProductId] [bigint] NOT NULL,
     
    24261)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    24362) ON [PRIMARY]
    244 
    24563GO
    246 
     64/****** Object:  Table [dbo].[PluginPackage]    Script Date: 03/11/2010 17:43:45 ******/
     65SET ANSI_NULLS ON
     66GO
     67SET QUOTED_IDENTIFIER ON
     68GO
     69CREATE TABLE [dbo].[PluginPackage](
     70  [PluginId] [bigint] NOT NULL,
     71  [Data] [image] NOT NULL,
     72 CONSTRAINT [PK_PluginPackage] PRIMARY KEY CLUSTERED
     73(
     74  [PluginId] ASC
     75)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
     76) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
     77GO
     78/****** Object:  Table [dbo].[Dependencies]    Script Date: 03/11/2010 17:43:45 ******/
     79SET ANSI_NULLS ON
     80GO
     81SET QUOTED_IDENTIFIER ON
     82GO
     83CREATE TABLE [dbo].[Dependencies](
     84  [PluginId] [bigint] NOT NULL,
     85  [DependencyId] [bigint] NOT NULL,
     86 CONSTRAINT [PK_Dependencies] PRIMARY KEY CLUSTERED
     87(
     88  [PluginId] ASC,
     89  [DependencyId] ASC
     90)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
     91) ON [PRIMARY]
     92GO
     93/****** Object:  Check [CK_Dependencies]    Script Date: 03/11/2010 17:43:45 ******/
     94ALTER TABLE [dbo].[Dependencies]  WITH CHECK ADD  CONSTRAINT [CK_Dependencies] CHECK  (([PluginId]<>[DependencyId]))
     95GO
     96ALTER TABLE [dbo].[Dependencies] CHECK CONSTRAINT [CK_Dependencies]
     97GO
     98/****** Object:  ForeignKey [FK_ProductPlugin_Plugin]    Script Date: 03/11/2010 17:43:45 ******/
    24799ALTER TABLE [dbo].[ProductPlugin]  WITH CHECK ADD  CONSTRAINT [FK_ProductPlugin_Plugin] FOREIGN KEY([PluginId])
    248100REFERENCES [dbo].[Plugin] ([Id])
    249101GO
    250 
    251102ALTER TABLE [dbo].[ProductPlugin] CHECK CONSTRAINT [FK_ProductPlugin_Plugin]
    252103GO
    253 
     104/****** Object:  ForeignKey [FK_ProductPlugin_Product]    Script Date: 03/11/2010 17:43:45 ******/
    254105ALTER TABLE [dbo].[ProductPlugin]  WITH CHECK ADD  CONSTRAINT [FK_ProductPlugin_Product] FOREIGN KEY([ProductId])
    255106REFERENCES [dbo].[Product] ([Id])
    256107GO
    257 
    258108ALTER TABLE [dbo].[ProductPlugin] CHECK CONSTRAINT [FK_ProductPlugin_Product]
    259109GO
    260 
    261 
     110/****** Object:  ForeignKey [FK_PluginPackage_Plugin]    Script Date: 03/11/2010 17:43:45 ******/
     111ALTER TABLE [dbo].[PluginPackage]  WITH CHECK ADD  CONSTRAINT [FK_PluginPackage_Plugin] FOREIGN KEY([PluginId])
     112REFERENCES [dbo].[Plugin] ([Id])
     113GO
     114ALTER TABLE [dbo].[PluginPackage] CHECK CONSTRAINT [FK_PluginPackage_Plugin]
     115GO
     116/****** Object:  ForeignKey [FK_Dependencies_Plugin]    Script Date: 03/11/2010 17:43:45 ******/
     117ALTER TABLE [dbo].[Dependencies]  WITH CHECK ADD  CONSTRAINT [FK_Dependencies_Plugin] FOREIGN KEY([DependencyId])
     118REFERENCES [dbo].[Plugin] ([Id])
     119GO
     120ALTER TABLE [dbo].[Dependencies] CHECK CONSTRAINT [FK_Dependencies_Plugin]
     121GO
     122/****** Object:  ForeignKey [FK_Dependencies_Plugin2]    Script Date: 03/11/2010 17:43:45 ******/
     123ALTER TABLE [dbo].[Dependencies]  WITH CHECK ADD  CONSTRAINT [FK_Dependencies_Plugin2] FOREIGN KEY([PluginId])
     124REFERENCES [dbo].[Plugin] ([Id])
     125GO
     126ALTER TABLE [dbo].[Dependencies] CHECK CONSTRAINT [FK_Dependencies_Plugin2]
     127GO
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.DeploymentService.AdminClient/HeuristicLab.DeploymentService.AdminClient.csproj

    r2860 r3006  
    7474  </ItemGroup>
    7575  <ItemGroup>
     76    <Compile Include="ConnectionSetupView.cs">
     77      <SubType>UserControl</SubType>
     78    </Compile>
     79    <Compile Include="ConnectionSetupView.Designer.cs">
     80      <DependentUpon>ConnectionSetupView.cs</DependentUpon>
     81    </Compile>
     82    <Compile Include="LicenseView.cs">
     83      <SubType>UserControl</SubType>
     84    </Compile>
     85    <Compile Include="LicenseView.Designer.cs">
     86      <DependentUpon>LicenseView.cs</DependentUpon>
     87    </Compile>
    7688    <Compile Include="PluginComparisonView.cs">
    7789      <SubType>UserControl</SubType>
     
    8597    <Compile Include="PluginView.Designer.cs">
    8698      <DependentUpon>PluginView.cs</DependentUpon>
    87     </Compile>
    88     <Compile Include="LicenseView.cs">
    89       <SubType>UserControl</SubType>
    90     </Compile>
    91     <Compile Include="LicenseView.Designer.cs">
    92       <DependentUpon>LicenseView.cs</DependentUpon>
    9399    </Compile>
    94100    <Compile Include="ProductEditor.cs">
     
    133139  </ItemGroup>
    134140  <ItemGroup>
    135     <None Include="app.config" />
    136141    <None Include="HeuristicLabDeploymentServiceAdminClientPlugin.cs.frame" />
    137142    <None Include="Properties\AssemblyInfo.frame" />
    138143  </ItemGroup>
    139144  <ItemGroup>
     145    <EmbeddedResource Include="ConnectionSetupView.resx">
     146      <DependentUpon>ConnectionSetupView.cs</DependentUpon>
     147    </EmbeddedResource>
     148    <EmbeddedResource Include="LicenseView.resx">
     149      <DependentUpon>LicenseView.cs</DependentUpon>
     150    </EmbeddedResource>
    140151    <EmbeddedResource Include="MainForm.resx">
    141152      <DependentUpon>MainForm.cs</DependentUpon>
     
    146157    <EmbeddedResource Include="PluginView.resx">
    147158      <DependentUpon>PluginView.cs</DependentUpon>
    148     </EmbeddedResource>
    149     <EmbeddedResource Include="LicenseView.resx">
    150       <DependentUpon>LicenseView.cs</DependentUpon>
    151159    </EmbeddedResource>
    152160    <EmbeddedResource Include="ProductEditor.resx">
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.DeploymentService.AdminClient/LicenseView.cs

    r2816 r3006  
    77using System.Text;
    88using System.Windows.Forms;
    9 using HeuristicLab.MainForm;
    109using HeuristicLab.PluginInfrastructure;
    1110
     
    1817    }
    1918
    20     public LicenseView(string name, string version, string licenseText) {
     19    public LicenseView(IPluginDescription plugin) {
    2120      InitializeComponent();
    22       Caption = "License of: " + name + " " + version;
    23       textBox.Text = licenseText;
     21      Caption = "License of: " + plugin;
     22      textBox.Text = plugin.LicenseText;
    2423    }
    2524  }
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.DeploymentService.AdminClient/PluginListView.Designer.cs

    r2860 r3006  
    3030      this.serverVersion = new System.Windows.Forms.ColumnHeader();
    3131      this.imageList = new System.Windows.Forms.ImageList(this.components);
    32       this.serverUrlLabel = new System.Windows.Forms.Label();
    33       this.serverUrlTextBox = new System.Windows.Forms.TextBox();
    34       this.connectButton = new System.Windows.Forms.Button();
     32      this.connectionSetupButton = new System.Windows.Forms.Button();
    3533      this.refreshButton = new System.Windows.Forms.Button();
    3634      this.uploadButton = new System.Windows.Forms.Button();
     
    8381      this.imageList.TransparentColor = System.Drawing.Color.Transparent;
    8482      //
    85       // serverUrlLabel
     83      // connectionSetupButton
    8684      //
    87       this.serverUrlLabel.AutoSize = true;
    88       this.serverUrlLabel.Location = new System.Drawing.Point(3, 6);
    89       this.serverUrlLabel.Name = "serverUrlLabel";
    90       this.serverUrlLabel.Size = new System.Drawing.Size(98, 13);
    91       this.serverUrlLabel.TabIndex = 5;
    92       this.serverUrlLabel.Text = "Deployment server:";
    93       //
    94       // serverUrlTextBox
    95       //
    96       this.serverUrlTextBox.Location = new System.Drawing.Point(107, 3);
    97       this.serverUrlTextBox.Name = "serverUrlTextBox";
    98       this.serverUrlTextBox.Size = new System.Drawing.Size(246, 20);
    99       this.serverUrlTextBox.TabIndex = 4;
    100       //
    101       // connectButton
    102       //
    103       this.connectButton.Location = new System.Drawing.Point(359, 1);
    104       this.connectButton.Name = "connectButton";
    105       this.connectButton.Size = new System.Drawing.Size(75, 23);
    106       this.connectButton.TabIndex = 3;
    107       this.connectButton.Text = "Connect";
    108       this.connectButton.UseVisualStyleBackColor = true;
    109       this.connectButton.Click += new System.EventHandler(this.connectButton_Click);
     85      this.connectionSetupButton.Location = new System.Drawing.Point(84, 3);
     86      this.connectionSetupButton.Name = "connectionSetupButton";
     87      this.connectionSetupButton.Size = new System.Drawing.Size(118, 23);
     88      this.connectionSetupButton.TabIndex = 3;
     89      this.connectionSetupButton.Text = "Edit Connection...";
     90      this.connectionSetupButton.UseVisualStyleBackColor = true;
     91      this.connectionSetupButton.Click += new System.EventHandler(this.connectButton_Click);
    11092      //
    11193      // refreshButton
    11294      //
    113       this.refreshButton.Location = new System.Drawing.Point(440, 1);
     95      this.refreshButton.Location = new System.Drawing.Point(3, 3);
    11496      this.refreshButton.Name = "refreshButton";
    11597      this.refreshButton.Size = new System.Drawing.Size(75, 23);
     
    136118      this.Controls.Add(this.uploadButton);
    137119      this.Controls.Add(this.refreshButton);
    138       this.Controls.Add(this.connectButton);
    139       this.Controls.Add(this.serverUrlTextBox);
    140       this.Controls.Add(this.serverUrlLabel);
     120      this.Controls.Add(this.connectionSetupButton);
    141121      this.Controls.Add(this.listView);
    142122      this.Name = "PluginListView";
    143123      this.Size = new System.Drawing.Size(539, 508);
    144124      this.ResumeLayout(false);
    145       this.PerformLayout();
    146125
    147126    }
     
    152131    private System.Windows.Forms.ColumnHeader nameHeader;
    153132    private System.Windows.Forms.ColumnHeader localVersion;
    154     private System.Windows.Forms.Button connectButton;
    155     private System.Windows.Forms.Label serverUrlLabel;
    156     private System.Windows.Forms.TextBox serverUrlTextBox;
     133    private System.Windows.Forms.Button connectionSetupButton;
    157134    private System.Windows.Forms.ColumnHeader serverVersion;
    158135    private System.Windows.Forms.Button refreshButton;
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.DeploymentService.AdminClient/PluginListView.cs

    r2860 r3006  
    2727      Caption = "Plugins";
    2828
    29       using (var client = new PluginDeploymentService.UpdateClient()) {
    30         serverUrlTextBox.Text = client.Endpoint.Address.ToString();
    31       }
    32 
    3329      localAndServerPlugins = new Dictionary<IPluginDescription, PluginDeploymentService.PluginDescription>();
    3430
     
    7975    void updateServerPluginsWorker_DoWork(object sender, DoWorkEventArgs e) {
    8076      try {
    81         using (var client = new PluginDeploymentService.UpdateClient()) {
    82           e.Result = client.GetPlugins();
    83           e.Cancel = false;
    84         }
     77        var client = PluginDeploymentService.UpdateClientFactory.CreateClient();
     78        e.Result = client.GetPlugins();
     79        e.Cancel = false;
    8580      }
    8681      catch (EndpointNotFoundException) {
     
    110105      try {
    111106        var selectedPlugins = (IEnumerable<IPluginDescription>)e.Argument;
    112         using (PluginDeploymentService.AdminClient adminClient = new PluginDeploymentService.AdminClient()) {
    113 
    114           foreach (var plugin in IteratePlugins(selectedPlugins)) {
    115             adminClient.DeployPlugin(MakePluginDescription(plugin), CreateZipPackage(plugin));
    116           }
     107        PluginDeploymentService.AdminClient adminClient = PluginDeploymentService.AdminClientFactory.CreateClient();
     108
     109        foreach (var plugin in IteratePlugins(selectedPlugins)) {
     110         adminClient.DeployPlugin(MakePluginDescription(plugin), CreateZipPackage(plugin));
    117111        }
    118112        e.Cancel = false;
     
    142136
    143137    private void connectButton_Click(object sender, EventArgs e) {
    144       if (connectButton.Text == "Connect") {
    145         DisableControl();
    146         RefreshPluginsAsync();
    147       } else {
    148         UpdateControlsDisconnectedState();
    149       }
     138      var connectionSetupView = new ConnectionSetupView();
     139      connectionSetupView.Show();
    150140    }
    151141
     
    226216      var dependencies = from dep in plugin.Dependencies
    227217                         select MakePluginDescription(dep);
    228       if (string.IsNullOrEmpty(plugin.ContactName) || string.IsNullOrEmpty(plugin.ContactEmail)) {
    229         return new PluginDeploymentService.PluginDescription(plugin.Name, plugin.Version, dependencies);
    230       } else return new PluginDeploymentService.PluginDescription(plugin.Name, plugin.Version, dependencies, plugin.ContactName, plugin.ContactEmail, plugin.LicenseText);
     218      return new PluginDeploymentService.PluginDescription(plugin.Name, plugin.Version, dependencies, plugin.ContactName, plugin.ContactEmail, plugin.LicenseText);
    231219    }
    232220
     
    256244
    257245    private void UpdateControlsDisconnectedState() {
    258       connectButton.Text = "Connect";
    259       serverUrlTextBox.Enabled = true;
    260       serverUrlLabel.Enabled = true;
     246      connectionSetupButton.Text = "Connect";
    261247      refreshButton.Enabled = false;
    262248
     
    269255
    270256    private void UpdateControlsConnectedState() {
    271       connectButton.Text = "Disconnect";
    272       connectButton.Enabled = true;
    273       serverUrlTextBox.Enabled = false;
    274       serverUrlLabel.Enabled = false;
     257      connectionSetupButton.Text = "Disconnect";
     258      connectionSetupButton.Enabled = true;
    275259      refreshButton.Enabled = true;
    276260      listView.Enabled = true;
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.DeploymentService.AdminClient/PluginView.Designer.cs

    r2860 r3006  
    139139      this.dependenciesListView.UseCompatibleStateImageBehavior = false;
    140140      this.dependenciesListView.View = System.Windows.Forms.View.Details;
     141      this.dependenciesListView.ItemActivate += new System.EventHandler(this.dependenciesListView_ItemActivate);
    141142      //
    142143      // pluginNameHeader
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.DeploymentService.AdminClient/PluginView.cs

    r2860 r3006  
    2828
    2929      this.plugin = plugin;
     30      this.Name = "Plugin Details: " + plugin.ToString();
    3031      UpdateControls();
    3132    }
     
    4445      foreach (IPluginDescription dependency in plugin.Dependencies) {
    4546        var depItem = new ListViewItem(new string[] { dependency.Name, dependency.Version.ToString() });
     47        depItem.Tag = dependency;
    4648        depItem.ImageKey = IMAGE_KEY_ASSEMBLY;
    4749        dependenciesListView.Items.Add(depItem);
     
    7375
    7476    private void licenseButton_Click(object sender, EventArgs e) {
    75       LicenseView view = new LicenseView(plugin.Name, plugin.Version.ToString(), plugin.LicenseText);
     77      LicenseView view = new LicenseView(plugin);
    7678      view.Show();
     79    }
     80
     81    private void dependenciesListView_ItemActivate(object sender, EventArgs e) {
     82      if (dependenciesListView.SelectedItems.Count > 0) {
     83        var dep = (IPluginDescription)dependenciesListView.SelectedItems[0].Tag;
     84        PluginView view = new PluginView(dep);
     85        view.Show();
     86      }
    7787    }
    7888  }
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.Services.Deployment.Test/HeuristicLab.Services.Deployment.Test.csproj

    r2804 r3006  
    106106    <None Include="Properties\DataSources\HeuristicLab.Services.Deployment.PluginDescription.datasource" />
    107107    <None Include="Properties\DataSources\HeuristicLab.Services.Deployment.ProductDescription.datasource" />
    108     <None Include="Service References\AdminService\HeuristicLab.Services.Deployment.xsd" />
    109     <None Include="Service References\AdminService\service.wsdl" />
    110     <None Include="Service References\AdminService\service.xsd" />
    111     <None Include="Service References\AdminService\service1.xsd" />
    112     <None Include="Service References\AdminService\System.xsd" />
    113     <None Include="Service References\UpdateService\HeuristicLab.Services.Deployment.xsd" />
    114     <None Include="Service References\UpdateService\service.wsdl" />
    115     <None Include="Service References\UpdateService\service.xsd" />
    116     <None Include="Service References\UpdateService\service1.xsd" />
    117     <None Include="Service References\UpdateService\System.xsd" />
     108    <None Include="Service References\AdminService\HeuristicLab.Services.Deployment1.xsd" />
     109    <None Include="Service References\AdminService\service1.wsdl" />
     110    <None Include="Service References\AdminService\service2.xsd" />
     111    <None Include="Service References\AdminService\service21.xsd" />
     112    <None Include="Service References\AdminService\System1.xsd" />
     113    <None Include="Service References\UpdateService\HeuristicLab.Services.Deployment1.xsd" />
     114    <None Include="Service References\UpdateService\service1.wsdl" />
     115    <None Include="Service References\UpdateService\service2.xsd" />
     116    <None Include="Service References\UpdateService\service21.xsd" />
     117    <None Include="Service References\UpdateService\System1.xsd" />
    118118  </ItemGroup>
    119119  <ItemGroup>
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.Services.Deployment.Test/Service References/AdminService/Reference.svcmap

    r2804 r3006  
    1818  </ClientOptions>
    1919  <MetadataSources>
    20     <MetadataSource Address="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/mex" Protocol="mex" SourceId="1" />
     20    <MetadataSource Address="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Admin.svc/mex" Protocol="mex" SourceId="1" />
    2121  </MetadataSources>
    2222  <Metadata>
    23     <MetadataFile FileName="service.wsdl" MetadataType="Wsdl" ID="f9aa7841-9f78-43d9-9008-0decd3d12993" SourceId="1" SourceUrl="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/mex" />
    24     <MetadataFile FileName="service.xsd" MetadataType="Schema" ID="c0d733c0-fa7a-4965-bf67-e04efdf79732" SourceId="1" SourceUrl="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/mex" />
    25     <MetadataFile FileName="service1.xsd" MetadataType="Schema" ID="8b323fa0-af4b-4db2-95c7-caf4621ded43" SourceId="1" SourceUrl="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/mex" />
    26     <MetadataFile FileName="HeuristicLab.Services.Deployment.xsd" MetadataType="Schema" ID="b359957d-39eb-4fda-b855-9cf0efe56074" SourceId="1" SourceUrl="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/mex" />
    27     <MetadataFile FileName="System.xsd" MetadataType="Schema" ID="de5b0b79-4ace-49d6-9d08-a352d353beef" SourceId="1" SourceUrl="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/mex" />
     23    <MetadataFile FileName="service1.wsdl" MetadataType="Wsdl" ID="5b9ee4af-f905-45c3-84e1-34c1643068f0" SourceId="1" SourceUrl="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Admin.svc/mex" />
     24    <MetadataFile FileName="service2.xsd" MetadataType="Schema" ID="0d75803f-50a2-4508-823b-e301c1b0f341" SourceId="1" SourceUrl="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Admin.svc/mex" />
     25    <MetadataFile FileName="service21.xsd" MetadataType="Schema" ID="7804cf00-b181-4ddd-9d07-dee4a427e49a" SourceId="1" SourceUrl="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Admin.svc/mex" />
     26    <MetadataFile FileName="HeuristicLab.Services.Deployment1.xsd" MetadataType="Schema" ID="5aae270e-18b4-4210-bb2f-59f49ca45774" SourceId="1" SourceUrl="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Admin.svc/mex" />
     27    <MetadataFile FileName="System1.xsd" MetadataType="Schema" ID="5d49ee73-a023-4e41-a0fd-1d76ecce0177" SourceId="1" SourceUrl="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Admin.svc/mex" />
    2828  </Metadata>
    2929  <Extensions>
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.Services.Deployment.Test/Service References/AdminService/configuration.svcinfo

    r2771 r3006  
    33  <behaviors />
    44  <bindings>
    5     <binding digest="System.ServiceModel.Configuration.WSHttpBindingElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; messageEncoding=&quot;Text&quot; name=&quot;WSHttpBinding_IAdmin&quot; textEncoding=&quot;utf-8&quot; transactionFlow=&quot;false&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;reliableSession enabled=&quot;false&quot; inactivityTimeout=&quot;00:10:00&quot; ordered=&quot;true&quot; /&gt;&lt;security mode=&quot;Message&quot;&gt;&lt;message algorithmSuite=&quot;Default&quot; clientCredentialType=&quot;Windows&quot; establishSecurityContext=&quot;true&quot; negotiateServiceCredential=&quot;true&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; proxyCredentialType=&quot;None&quot; realm=&quot;&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="wsHttpBinding" name="WSHttpBinding_IAdmin" />
     5    <binding digest="System.ServiceModel.Configuration.WSHttpBindingElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; messageEncoding=&quot;Text&quot; name=&quot;WSHttpBinding_IAdmin&quot; textEncoding=&quot;utf-8&quot; transactionFlow=&quot;false&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;reliableSession enabled=&quot;false&quot; inactivityTimeout=&quot;00:10:00&quot; ordered=&quot;true&quot; /&gt;&lt;security mode=&quot;Message&quot;&gt;&lt;message algorithmSuite=&quot;Default&quot; clientCredentialType=&quot;UserName&quot; establishSecurityContext=&quot;true&quot; negotiateServiceCredential=&quot;true&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; proxyCredentialType=&quot;None&quot; realm=&quot;&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="wsHttpBinding" name="WSHttpBinding_IAdmin" />
    66  </bindings>
    77  <endpoints>
    8     <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_IAdmin&quot; contract=&quot;AdminService.IAdmin&quot; name=&quot;WSHttpBinding_IAdmin&quot;&gt;&lt;identity&gt;&lt;dns value=&quot;localhost&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_IAdmin&quot; contract=&quot;AdminService.IAdmin&quot; name=&quot;WSHttpBinding_IAdmin&quot;&gt;&lt;identity&gt;&lt;dns value=&quot;localhost&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" contractName="AdminService.IAdmin" name="WSHttpBinding_IAdmin" />
     8    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://servdev.heuristiclab.com/HeuristicLab.Deployment/Admin.svc&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_IAdmin&quot; contract=&quot;AdminService.IAdmin&quot; name=&quot;WSHttpBinding_IAdmin&quot;&gt;&lt;identity&gt;&lt;certificate encodedValue=&quot;AwAAAAEAAAAUAAAA6BqitFxQFezmOGMs4hfDnxmUaNkgAAAAAQAAANYCAAAwggLSMIIBuqADAgECAhBTkXiUNnyLi0hZzHvfnFSpMA0GCSqGSIb3DQEBBQUAMBIxEDAOBgNVBAMTB3NlcnZkZXYwHhcNMTAwMzA5MTE1MzAzWhcNMTEwMzA5MDAwMDAwWjASMRAwDgYDVQQDEwdzZXJ2ZGV2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAth2UcoEiKuzOoj80IySFzg5AchkCdezyWn1QRVHtxD0AcY0aHOjf8UGTsMi8nA9T5VHEdDfvF7S5QJNWo8dcSvgs2wvi5HYatiU4/AT8J3Sb1hhDyyqJqI+zqs/Z446tMGPB7bTta/Fi+AIjrnvW6cOqbcO/ZkpUUjkhQvCC89QZkSsXGOMlxUWZU8mN70JoOeFNoQ4KE7+0L0OnC4p9L609LUfByfXobWnB9mhIMtnW1n8XKNfBVWp9b3D960Ks+nKZ6xWUVqAc+OtREHFunDRbrKaMmMNRsIsgpyFEWA9jEnKUsui/kIpvK3OyPa+jqOzNfpNz6VNBrVV+e3uenwIDAQABoyQwIjALBgNVHQ8EBAMCBDAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQADggEBAD7rEM74jtLImYCp/0Okncn0MEBwCP7XlHwC1KYSZzHs8vUIFyH8V1CLgQCq5tZV7GbT9N1/4XmFZrwxScZxkiWb6vnpv2yFPi4LX68unDTdTKaOaknblLc4HQ/9moOa+cMyQDOrqLLZYHuAwg2DwOljDGzvbOmLRNlrnDyJLYSRiD4RxRmAxI+qgiAVg2GCXIbR+BBz7H5z1kn0O6YUk9SPeMondAxU6JmYfhB3334Ie1hGBiAx2gAnkFsF781/E/lbd+nobhSazdfEo3+pwkyhwkpU3JKKLRHU72I9lCXvOMWjEcH6yZfEzgVg1UboPs+AyK7wPa5nPbStmM7dxjE=&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://servdev.heuristiclab.com/HeuristicLab.Deployment/Admin.svc&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_IAdmin&quot; contract=&quot;AdminService.IAdmin&quot; name=&quot;WSHttpBinding_IAdmin&quot;&gt;&lt;identity&gt;&lt;certificate encodedValue=&quot;AwAAAAEAAAAUAAAA6BqitFxQFezmOGMs4hfDnxmUaNkgAAAAAQAAANYCAAAwggLSMIIBuqADAgECAhBTkXiUNnyLi0hZzHvfnFSpMA0GCSqGSIb3DQEBBQUAMBIxEDAOBgNVBAMTB3NlcnZkZXYwHhcNMTAwMzA5MTE1MzAzWhcNMTEwMzA5MDAwMDAwWjASMRAwDgYDVQQDEwdzZXJ2ZGV2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAth2UcoEiKuzOoj80IySFzg5AchkCdezyWn1QRVHtxD0AcY0aHOjf8UGTsMi8nA9T5VHEdDfvF7S5QJNWo8dcSvgs2wvi5HYatiU4/AT8J3Sb1hhDyyqJqI+zqs/Z446tMGPB7bTta/Fi+AIjrnvW6cOqbcO/ZkpUUjkhQvCC89QZkSsXGOMlxUWZU8mN70JoOeFNoQ4KE7+0L0OnC4p9L609LUfByfXobWnB9mhIMtnW1n8XKNfBVWp9b3D960Ks+nKZ6xWUVqAc+OtREHFunDRbrKaMmMNRsIsgpyFEWA9jEnKUsui/kIpvK3OyPa+jqOzNfpNz6VNBrVV+e3uenwIDAQABoyQwIjALBgNVHQ8EBAMCBDAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQADggEBAD7rEM74jtLImYCp/0Okncn0MEBwCP7XlHwC1KYSZzHs8vUIFyH8V1CLgQCq5tZV7GbT9N1/4XmFZrwxScZxkiWb6vnpv2yFPi4LX68unDTdTKaOaknblLc4HQ/9moOa+cMyQDOrqLLZYHuAwg2DwOljDGzvbOmLRNlrnDyJLYSRiD4RxRmAxI+qgiAVg2GCXIbR+BBz7H5z1kn0O6YUk9SPeMondAxU6JmYfhB3334Ie1hGBiAx2gAnkFsF781/E/lbd+nobhSazdfEo3+pwkyhwkpU3JKKLRHU72I9lCXvOMWjEcH6yZfEzgVg1UboPs+AyK7wPa5nPbStmM7dxjE=&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" contractName="AdminService.IAdmin" name="WSHttpBinding_IAdmin" />
    99  </endpoints>
    1010</configurationSnapshot>
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.Services.Deployment.Test/Service References/AdminService/configuration91.svcinfo

    r2771 r3006  
    11<?xml version="1.0" encoding="utf-8"?>
    2 <SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="LNue/oD5IMsfCgoXP3byqdtnfSk=">
     2<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="3CD5zso1obyNQzDqdMgaobikT0U=">
    33  <bindingConfigurations>
    44    <bindingConfiguration bindingType="wsHttpBinding" name="WSHttpBinding_IAdmin">
     
    101101        </property>
    102102        <property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.MessageCredentialType, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    103           <serializedValue>Windows</serializedValue>
     103          <serializedValue>UserName</serializedValue>
    104104        </property>
    105105        <property path="/security/message/negotiateServiceCredential" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     
    116116  </bindingConfigurations>
    117117  <endpoints>
    118     <endpoint name="WSHttpBinding_IAdmin" contract="AdminService.IAdmin" bindingType="wsHttpBinding" address="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/" bindingConfiguration="WSHttpBinding_IAdmin">
     118    <endpoint name="WSHttpBinding_IAdmin" contract="AdminService.IAdmin" bindingType="wsHttpBinding" address="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Admin.svc" bindingConfiguration="WSHttpBinding_IAdmin">
    119119      <properties>
    120120        <property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    121           <serializedValue>http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/</serializedValue>
     121          <serializedValue>http://servdev.heuristiclab.com/HeuristicLab.Deployment/Admin.svc</serializedValue>
    122122        </property>
    123123        <property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     
    157157          <serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
    158158        </property>
    159         <property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    160           <serializedValue>localhost</serializedValue>
     159        <property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     160          <serializedValue />
    161161        </property>
    162162        <property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     
    169169          <serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue>
    170170        </property>
    171         <property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    172           <serializedValue />
     171        <property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     172          <serializedValue>AwAAAAEAAAAUAAAA6BqitFxQFezmOGMs4hfDnxmUaNkgAAAAAQAAANYCAAAwggLSMIIBuqADAgECAhBTkXiUNnyLi0hZzHvfnFSpMA0GCSqGSIb3DQEBBQUAMBIxEDAOBgNVBAMTB3NlcnZkZXYwHhcNMTAwMzA5MTE1MzAzWhcNMTEwMzA5MDAwMDAwWjASMRAwDgYDVQQDEwdzZXJ2ZGV2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAth2UcoEiKuzOoj80IySFzg5AchkCdezyWn1QRVHtxD0AcY0aHOjf8UGTsMi8nA9T5VHEdDfvF7S5QJNWo8dcSvgs2wvi5HYatiU4/AT8J3Sb1hhDyyqJqI+zqs/Z446tMGPB7bTta/Fi+AIjrnvW6cOqbcO/ZkpUUjkhQvCC89QZkSsXGOMlxUWZU8mN70JoOeFNoQ4KE7+0L0OnC4p9L609LUfByfXobWnB9mhIMtnW1n8XKNfBVWp9b3D960Ks+nKZ6xWUVqAc+OtREHFunDRbrKaMmMNRsIsgpyFEWA9jEnKUsui/kIpvK3OyPa+jqOzNfpNz6VNBrVV+e3uenwIDAQABoyQwIjALBgNVHQ8EBAMCBDAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQADggEBAD7rEM74jtLImYCp/0Okncn0MEBwCP7XlHwC1KYSZzHs8vUIFyH8V1CLgQCq5tZV7GbT9N1/4XmFZrwxScZxkiWb6vnpv2yFPi4LX68unDTdTKaOaknblLc4HQ/9moOa+cMyQDOrqLLZYHuAwg2DwOljDGzvbOmLRNlrnDyJLYSRiD4RxRmAxI+qgiAVg2GCXIbR+BBz7H5z1kn0O6YUk9SPeMondAxU6JmYfhB3334Ie1hGBiAx2gAnkFsF781/E/lbd+nobhSazdfEo3+pwkyhwkpU3JKKLRHU72I9lCXvOMWjEcH6yZfEzgVg1UboPs+AyK7wPa5nPbStmM7dxjE=</serializedValue>
    173173        </property>
    174174        <property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.Services.Deployment.Test/Service References/UpdateService/Reference.cs

    r2804 r3006  
    2424        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUpdate/GetPlugins", ReplyAction="http://tempuri.org/IUpdate/GetPluginsResponse")]
    2525        HeuristicLab.Services.Deployment.PluginDescription[] GetPlugins();
     26       
     27        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUpdate/DoTheShit", ReplyAction="http://tempuri.org/IUpdate/DoTheShitResponse")]
     28        string DoTheShit();
    2629    }
    2730   
     
    6467            return base.Channel.GetPlugins();
    6568        }
     69       
     70        public string DoTheShit() {
     71            return base.Channel.DoTheShit();
     72        }
    6673    }
    6774}
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.Services.Deployment.Test/Service References/UpdateService/Reference.svcmap

    r2804 r3006  
    1818  </ClientOptions>
    1919  <MetadataSources>
    20     <MetadataSource Address="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/mex" Protocol="mex" SourceId="1" />
     20    <MetadataSource Address="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Update.svc/mex" Protocol="mex" SourceId="1" />
    2121  </MetadataSources>
    2222  <Metadata>
    23     <MetadataFile FileName="service.wsdl" MetadataType="Wsdl" ID="8e5d7689-adea-4747-9a70-0ac7b6d53f45" SourceId="1" SourceUrl="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/mex" />
    24     <MetadataFile FileName="service.xsd" MetadataType="Schema" ID="3ecb07b5-a96d-4407-89dd-1e042527a912" SourceId="1" SourceUrl="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/mex" />
    25     <MetadataFile FileName="service1.xsd" MetadataType="Schema" ID="a49c6318-2559-4c8b-901c-d677ebcea2cb" SourceId="1" SourceUrl="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/mex" />
    26     <MetadataFile FileName="HeuristicLab.Services.Deployment.xsd" MetadataType="Schema" ID="95669cc5-5ec5-467d-9a09-464c14558b64" SourceId="1" SourceUrl="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/mex" />
    27     <MetadataFile FileName="System.xsd" MetadataType="Schema" ID="c6636f98-e644-40dd-a862-3a38c2950f79" SourceId="1" SourceUrl="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/mex" />
     23    <MetadataFile FileName="service1.wsdl" MetadataType="Wsdl" ID="f3c1f538-057c-414d-8509-9e981525de05" SourceId="1" SourceUrl="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Update.svc/mex" />
     24    <MetadataFile FileName="service2.xsd" MetadataType="Schema" ID="b8cba586-c574-471e-8405-46ec9815e185" SourceId="1" SourceUrl="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Update.svc/mex" />
     25    <MetadataFile FileName="service21.xsd" MetadataType="Schema" ID="bd1caeef-f9a6-4975-9f27-8c30e6379651" SourceId="1" SourceUrl="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Update.svc/mex" />
     26    <MetadataFile FileName="HeuristicLab.Services.Deployment1.xsd" MetadataType="Schema" ID="280fce76-387d-466d-92a4-580eeeef3756" SourceId="1" SourceUrl="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Update.svc/mex" />
     27    <MetadataFile FileName="System1.xsd" MetadataType="Schema" ID="bf54ca0e-a22e-4e2d-b3c3-6957c9be244e" SourceId="1" SourceUrl="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Update.svc/mex" />
    2828  </Metadata>
    2929  <Extensions>
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.Services.Deployment.Test/Service References/UpdateService/configuration.svcinfo

    r2771 r3006  
    33  <behaviors />
    44  <bindings>
    5     <binding digest="System.ServiceModel.Configuration.WSHttpBindingElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; messageEncoding=&quot;Text&quot; name=&quot;WSHttpBinding_IUpdate&quot; textEncoding=&quot;utf-8&quot; transactionFlow=&quot;false&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;reliableSession enabled=&quot;false&quot; inactivityTimeout=&quot;00:10:00&quot; ordered=&quot;true&quot; /&gt;&lt;security mode=&quot;Message&quot;&gt;&lt;message algorithmSuite=&quot;Default&quot; clientCredentialType=&quot;Windows&quot; establishSecurityContext=&quot;true&quot; negotiateServiceCredential=&quot;true&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; proxyCredentialType=&quot;None&quot; realm=&quot;&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="wsHttpBinding" name="WSHttpBinding_IUpdate" />
     5    <binding digest="System.ServiceModel.Configuration.WSHttpBindingElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; messageEncoding=&quot;Text&quot; name=&quot;WSHttpBinding_IUpdate&quot; textEncoding=&quot;utf-8&quot; transactionFlow=&quot;false&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;reliableSession enabled=&quot;false&quot; inactivityTimeout=&quot;00:10:00&quot; ordered=&quot;true&quot; /&gt;&lt;security mode=&quot;Message&quot;&gt;&lt;message algorithmSuite=&quot;Default&quot; clientCredentialType=&quot;UserName&quot; establishSecurityContext=&quot;true&quot; negotiateServiceCredential=&quot;true&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; proxyCredentialType=&quot;None&quot; realm=&quot;&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="wsHttpBinding" name="WSHttpBinding_IUpdate" />
    66  </bindings>
    77  <endpoints>
    8     <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_IUpdate&quot; contract=&quot;UpdateService.IUpdate&quot; name=&quot;WSHttpBinding_IUpdate&quot;&gt;&lt;identity&gt;&lt;dns value=&quot;localhost&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_IUpdate&quot; contract=&quot;UpdateService.IUpdate&quot; name=&quot;WSHttpBinding_IUpdate&quot;&gt;&lt;identity&gt;&lt;dns value=&quot;localhost&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" contractName="UpdateService.IUpdate" name="WSHttpBinding_IUpdate" />
     8    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://servdev.heuristiclab.com/HeuristicLab.Deployment/Update.svc&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_IUpdate&quot; contract=&quot;UpdateService.IUpdate&quot; name=&quot;WSHttpBinding_IUpdate&quot;&gt;&lt;identity&gt;&lt;userPrincipalName value=&quot;&amp;#xD;&amp;#xA;          &quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://servdev.heuristiclab.com/HeuristicLab.Deployment/Update.svc&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_IUpdate&quot; contract=&quot;UpdateService.IUpdate&quot; name=&quot;WSHttpBinding_IUpdate&quot;&gt;&lt;identity&gt;&lt;userPrincipalName value=&quot;&amp;#xD;&amp;#xA;          &quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" contractName="UpdateService.IUpdate" name="WSHttpBinding_IUpdate" />
    99  </endpoints>
    1010</configurationSnapshot>
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.Services.Deployment.Test/Service References/UpdateService/configuration91.svcinfo

    r2771 r3006  
    11<?xml version="1.0" encoding="utf-8"?>
    2 <SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="gVI/ZurkT1S+L3Ln9j34sdO/2KM=">
     2<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="Qfnk39kVgFXcclYnAAZ4QxwJ2v8=">
    33  <bindingConfigurations>
    44    <bindingConfiguration bindingType="wsHttpBinding" name="WSHttpBinding_IUpdate">
     
    101101        </property>
    102102        <property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.MessageCredentialType, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    103           <serializedValue>Windows</serializedValue>
     103          <serializedValue>UserName</serializedValue>
    104104        </property>
    105105        <property path="/security/message/negotiateServiceCredential" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     
    116116  </bindingConfigurations>
    117117  <endpoints>
    118     <endpoint name="WSHttpBinding_IUpdate" contract="UpdateService.IUpdate" bindingType="wsHttpBinding" address="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/" bindingConfiguration="WSHttpBinding_IUpdate">
     118    <endpoint name="WSHttpBinding_IUpdate" contract="UpdateService.IUpdate" bindingType="wsHttpBinding" address="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Update.svc" bindingConfiguration="WSHttpBinding_IUpdate">
    119119      <properties>
    120120        <property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    121           <serializedValue>http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/</serializedValue>
     121          <serializedValue>http://servdev.heuristiclab.com/HeuristicLab.Deployment/Update.svc</serializedValue>
    122122        </property>
    123123        <property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     
    145145          <serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
    146146        </property>
    147         <property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    148           <serializedValue />
     147        <property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     148          <serializedValue>
     149          </serializedValue>
    149150        </property>
    150151        <property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     
    157158          <serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
    158159        </property>
    159         <property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    160           <serializedValue>localhost</serializedValue>
     160        <property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     161          <serializedValue />
    161162        </property>
    162163        <property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.Services.Deployment.Test/app.config

    r2771 r3006  
    1717                        <transport clientCredentialType="Windows" proxyCredentialType="None"
    1818                            realm="" />
    19                         <message clientCredentialType="Windows" negotiateServiceCredential="true"
     19                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
    2020                            algorithmSuite="Default" establishSecurityContext="true" />
    2121                    </security>
     
    3434                        <transport clientCredentialType="Windows" proxyCredentialType="None"
    3535                            realm="" />
    36                         <message clientCredentialType="Windows" negotiateServiceCredential="true"
     36                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
    3737                            algorithmSuite="Default" establishSecurityContext="true" />
    3838                    </security>
     
    4141        </bindings>
    4242        <client>
    43             <endpoint address="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/"
     43            <endpoint address="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Admin.svc"
     44                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdmin"
     45                contract="AdminService.IAdmin" name="WSHttpBinding_IAdmin">
     46                <identity>
     47                    <certificate encodedValue="AwAAAAEAAAAUAAAA6BqitFxQFezmOGMs4hfDnxmUaNkgAAAAAQAAANYCAAAwggLSMIIBuqADAgECAhBTkXiUNnyLi0hZzHvfnFSpMA0GCSqGSIb3DQEBBQUAMBIxEDAOBgNVBAMTB3NlcnZkZXYwHhcNMTAwMzA5MTE1MzAzWhcNMTEwMzA5MDAwMDAwWjASMRAwDgYDVQQDEwdzZXJ2ZGV2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAth2UcoEiKuzOoj80IySFzg5AchkCdezyWn1QRVHtxD0AcY0aHOjf8UGTsMi8nA9T5VHEdDfvF7S5QJNWo8dcSvgs2wvi5HYatiU4/AT8J3Sb1hhDyyqJqI+zqs/Z446tMGPB7bTta/Fi+AIjrnvW6cOqbcO/ZkpUUjkhQvCC89QZkSsXGOMlxUWZU8mN70JoOeFNoQ4KE7+0L0OnC4p9L609LUfByfXobWnB9mhIMtnW1n8XKNfBVWp9b3D960Ks+nKZ6xWUVqAc+OtREHFunDRbrKaMmMNRsIsgpyFEWA9jEnKUsui/kIpvK3OyPa+jqOzNfpNz6VNBrVV+e3uenwIDAQABoyQwIjALBgNVHQ8EBAMCBDAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQADggEBAD7rEM74jtLImYCp/0Okncn0MEBwCP7XlHwC1KYSZzHs8vUIFyH8V1CLgQCq5tZV7GbT9N1/4XmFZrwxScZxkiWb6vnpv2yFPi4LX68unDTdTKaOaknblLc4HQ/9moOa+cMyQDOrqLLZYHuAwg2DwOljDGzvbOmLRNlrnDyJLYSRiD4RxRmAxI+qgiAVg2GCXIbR+BBz7H5z1kn0O6YUk9SPeMondAxU6JmYfhB3334Ie1hGBiAx2gAnkFsF781/E/lbd+nobhSazdfEo3+pwkyhwkpU3JKKLRHU72I9lCXvOMWjEcH6yZfEzgVg1UboPs+AyK7wPa5nPbStmM7dxjE=" />
     48                </identity>
     49            </endpoint>
     50            <endpoint address="http://servdev.heuristiclab.com/HeuristicLab.Deployment/Update.svc"
    4451                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IUpdate"
    4552                contract="UpdateService.IUpdate" name="WSHttpBinding_IUpdate">
    4653                <identity>
    47                     <dns value="localhost" />
    48                 </identity>
    49             </endpoint>
    50             <endpoint address="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/"
    51                 binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdmin"
    52                 contract="AdminService.IAdmin" name="WSHttpBinding_IAdmin">
    53                 <identity>
    54                     <dns value="localhost" />
     54                    <userPrincipalName value="&#xD;&#xA;          " />
    5555                </identity>
    5656            </endpoint>
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.Services.Deployment/Admin.cs

    r2771 r3006  
    66using System.Text;
    77using HeuristicLab.Services.Deployment.DataAccess;
     8using System.Security.Permissions;
    89
    910namespace HeuristicLab.Services.Deployment {
     
    1112  public class Admin : IAdmin {
    1213    #region IAdmin Members
    13 
     14    [PrincipalPermission(SecurityAction.Demand, Role = "Managers")]
    1415    public void DeployProduct(ProductDescription product) {
    1516      var store = new PluginStore();
    1617      store.Persist(product);
    1718    }
    18 
     19    [PrincipalPermission(SecurityAction.Demand, Role = "Managers")]
    1920    public void DeployPlugin(PluginDescription plugin, byte[] zipFile) {
    2021      var store = new PluginStore();
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.Services.Deployment/App.config

    r2771 r3006  
    44  </configSections>
    55  <system.diagnostics>
    6     <sources>
    7       <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
    8         <listeners>
    9           <add type="System.Diagnostics.DefaultTraceListener" name="Default">
    10             <filter type="" />
    11           </add>
    12           <add name="ServiceModelMessageLoggingListener">
    13             <filter type="" />
    14           </add>
    15         </listeners>
    16       </source>
    17       <source name="System.ServiceModel" switchValue="Warning, ActivityTracing"
    18         propagateActivity="true">
    19         <listeners>
    20           <add type="System.Diagnostics.DefaultTraceListener" name="Default">
    21             <filter type="" />
    22           </add>
    23           <add name="ServiceModelTraceListener">
    24             <filter type="" />
    25           </add>
    26         </listeners>
    27       </source>
    28     </sources>
    29     <sharedListeners>
    30       <add initializeData="c:\users\p40086\documents\heuristiclab\hl3-core\branches\deploymentserver prototype\heuristiclab.services\heuristiclab.services.deployment\app_messages.svclog"
    31         type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    32         name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
    33         <filter type="" />
    34       </add>
    35       <add initializeData="c:\users\p40086\documents\heuristiclab\hl3-core\branches\deploymentserver prototype\heuristiclab.services\heuristiclab.services.deployment\app_tracelog.svclog"
    36         type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    37         name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
    38         <filter type="" />
    39       </add>
    40     </sharedListeners>
    416  </system.diagnostics>
    427  <connectionStrings>
    43     <add name="HeuristicLab.Services.Deployment.Properties.Settings.HeuristicLab_PluginStoreConnectionString"
    44       connectionString="Data Source=HEUREKA01\SQLEXPRESS;Initial Catalog=HeuristicLab.PluginStore;Integrated Security=True"
    45       providerName="System.Data.SqlClient" />
     8    <remove name="LocalSqlServer" />
     9    <add connectionString="Server=SERVDEV;Database=HeuristicLab.Deployment;Integrated Security=SSPI" name="HeuristicLab.Services.Deployment.DataAccess.Properties.Settings.HeuristicLab_PluginStoreConnectionString" />
     10    <add name="MyLocalSQLServer" connectionString="Initial Catalog=aspnetdb;data source=localhost;Integrated Security=SSPI;" />
    4611  </connectionStrings>
    4712  <system.web>
    48     <compilation debug="true" />
     13    <compilation debug="false" />
     14    <membership defaultProvider="MySqlMembershipProvider">
     15      <providers>
     16        <clear />
     17        <add name="MySqlMemberShipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="MyLocalSqlServer" enablePasswordReset="false" enablePasswordRetrieval="false" passwordFormat="Hashed" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"  minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="8" />
     18      </providers>
     19    </membership>
     20    <authentication mode="Windows" />
     21    <roleManager enabled="true" defaultProvider="MySqlRoleProvider">
     22      <providers>
     23        <clear />
     24        <add name="MySqlRoleProvider" connectionStringName="MyLocalSQLServer" applicationName="HeuristicLab.Deployment" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     25      </providers>
     26    </roleManager>
    4927  </system.web>
    5028  <!-- When deploying the service library project, the content of the config file must be added to the host's
     
    5331    <bindings>
    5432      <wsHttpBinding>
    55         <binding name="DefaultWsHttpBinding" maxBufferPoolSize="10000000"
    56           maxReceivedMessageSize="1000000">
    57           <readerQuotas maxDepth="1000" maxStringContentLength="16000"
    58             maxArrayLength="10000000" maxBytesPerRead="10000000" maxNameTableCharCount="16000" />
     33        <binding name="DefaultWsHttpBinding" maxBufferPoolSize="10000000" maxReceivedMessageSize="1000000">
     34          <readerQuotas maxDepth="1000" maxStringContentLength="16000" maxArrayLength="10000000" maxBytesPerRead="10000000" maxNameTableCharCount="16000" />
     35          <security mode="Message">
     36            <message clientCredentialType="UserName" />
     37          </security>
    5938        </binding>
    6039      </wsHttpBinding>
     
    6443    </bindings>
    6544    <diagnostics performanceCounters="Default">
    66       <messageLogging logMalformedMessages="true" logMessagesAtTransportLevel="true" />
     45      <messageLogging logMalformedMessages="false" logMessagesAtTransportLevel="false" />
    6746    </diagnostics>
    6847    <services>
    69       <service behaviorConfiguration="HeuristicLab.Services.Deployment.UpdateBehavior"
    70         name="HeuristicLab.Services.Deployment.Update">
    71         <endpoint address="" binding="wsHttpBinding" bindingConfiguration="DefaultWsHttpBinding"
    72           contract="HeuristicLab.Services.Deployment.IUpdate">
    73           <identity>
    74             <dns value="localhost" />
    75           </identity>
     48      <service behaviorConfiguration="HeuristicLab.Services.Deployment.UpdateBehavior" name="HeuristicLab.Services.Deployment.Update">
     49        <endpoint address="" binding="wsHttpBinding" bindingConfiguration="DefaultWsHttpBinding" contract="HeuristicLab.Services.Deployment.IUpdate">
    7650        </endpoint>
    77         <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="DefaultMexHttpBinding"
    78           contract="IMetadataExchange" />
    79         <host>
    80           <baseAddresses>
    81             <add baseAddress="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/" />
    82           </baseAddresses>
    83         </host>
     51        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="DefaultMexHttpBinding" contract="IMetadataExchange" />
    8452      </service>
    85       <service behaviorConfiguration="HeuristicLab.Services.Deployment.AdminBehavior"
    86         name="HeuristicLab.Services.Deployment.Admin">
    87         <endpoint address="" binding="wsHttpBinding" bindingConfiguration="DefaultWsHttpBinding"
    88           contract="HeuristicLab.Services.Deployment.IAdmin">
    89           <identity>
    90             <dns value="localhost" />
    91           </identity>
     53      <service behaviorConfiguration="HeuristicLab.Services.Deployment.AdminBehavior" name="HeuristicLab.Services.Deployment.Admin">
     54        <endpoint address="" binding="wsHttpBinding" bindingConfiguration="DefaultWsHttpBinding" contract="HeuristicLab.Services.Deployment.IAdmin">
    9255        </endpoint>
    93         <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="DefaultMexHttpBinding"
    94           contract="IMetadataExchange" />
    95         <host>
    96           <baseAddresses>
    97             <add baseAddress="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/" />
    98           </baseAddresses>
    99         </host>
     56        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="DefaultMexHttpBinding" contract="IMetadataExchange" />
    10057      </service>
    10158    </services>
     
    10562          <serviceMetadata httpGetEnabled="true" />
    10663          <serviceDebug includeExceptionDetailInFaults="false" />
     64          <serviceCredentials>
     65            <serviceCertificate findValue="servdev.heuristiclab.com" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
     66            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="MySqlMembershipProvider" />
     67          </serviceCredentials>
     68          <serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="MySqlRoleProvider" />
    10769        </behavior>
    10870        <behavior name="HeuristicLab.Services.Deployment.AdminBehavior">
    10971          <serviceMetadata httpGetEnabled="true" />
    11072          <serviceDebug includeExceptionDetailInFaults="false" />
     73          <serviceCredentials>
     74            <serviceCertificate findValue="servdev.heuristiclab.com" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
     75            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="MySqlMembershipProvider" />
     76          </serviceCredentials>
     77          <serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="MySqlRoleProvider" />
    11178        </behavior>
    11279      </serviceBehaviors>
  • branches/DeploymentServer Prototype/HeuristicLab.Services/HeuristicLab.Services.Deployment/Update.cs

    r2771 r3006  
    2727      return store.Plugins;
    2828    }
    29 
    3029    #endregion
    3130  }
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/DeploymentService/RegenerateServiceClasses.cmd

    r2812 r3006  
    11#
    2 svcutil http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/mex http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/mex  /language:C# /targetClientVersion:Version35 /out:DeploymentService /namespace:*,HeuristicLab.PluginInfrastructure.Advanced.DeploymentService /mergeConfig /config:../../app.config
     2svcutil http://servdev.heuristiclab.com/Deployment/Update.svc/mex http://servdev.heuristiclab.com/Deployment/Admin.svc/mex  /language:C# /targetClientVersion:Version35 /out:DeploymentService /namespace:*,HeuristicLab.PluginInfrastructure.Advanced.DeploymentService /mergeConfig /config:../../app.config
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManager.cs

    r2922 r3006  
    2929using System.Reflection;
    3030using ICSharpCode.SharpZipLib.Zip;
     31using System.ServiceModel;
    3132
    3233namespace HeuristicLab.PluginInfrastructure.Advanced {
     
    129130    /// <param name="connectionString"></param>
    130131    /// <returns></returns>
    131     public IEnumerable<IPluginDescription> GetRemotePluginList(string connectionString) {
    132       using (var client = new DeploymentService.UpdateClient()) {
    133         return client.GetPlugins();
     132    public IEnumerable<IPluginDescription> GetRemotePluginList() {
     133      var client = DeploymentService.UpdateClientFactory.CreateClient();
     134      try {
     135        List<IPluginDescription> plugins = new List<IPluginDescription>(client.GetPlugins());
     136        client.Close();
     137        return plugins;
     138      }
     139      catch (FaultException) {
     140        client.Abort();
     141        return new IPluginDescription[] { };
    134142      }
    135143    }
     
    140148    /// <param name="connectionString"></param>
    141149    /// <returns></returns>
    142     public IEnumerable<DeploymentService.ProductDescription> GetRemoteProductList(string connectionString) {
    143       using (var client = new DeploymentService.UpdateClient()) {
    144         return client.GetProducts();
     150    public IEnumerable<DeploymentService.ProductDescription> GetRemoteProductList() {
     151      var client = DeploymentService.UpdateClientFactory.CreateClient();
     152      try {
     153        List<DeploymentService.ProductDescription> products = new List<DeploymentService.ProductDescription>(client.GetProducts());
     154        client.Close();
     155        return products;
     156      }
     157      catch (FaultException) {
     158        client.Abort();
     159        return new DeploymentService.ProductDescription[] { };
    145160      }
    146161    }
     
    151166    /// <param name="connectionString"></param>
    152167    /// <param name="pluginNames"></param>
    153     public void Install(string connectionString, IEnumerable<IPluginDescription> plugins) {
    154       using (var client = new DeploymentService.UpdateClient()) {
    155         var args = new PluginInfrastructureCancelEventArgs(plugins.Select(x => x.Name + " " + x.Version));
    156         OnPreInstall(args);
    157         foreach (DeploymentService.PluginDescription plugin in plugins) {
    158           byte[] zippedPackage = client.GetPlugin(plugin);
    159           Unpack(zippedPackage);
    160           OnInstalled(new PluginInfrastructureEventArgs(plugin));
     168    public void Install(IEnumerable<IPluginDescription> plugins) {
     169      var args = new PluginInfrastructureCancelEventArgs(plugins);
     170      OnPreInstall(args);
     171      if (!args.Cancel) {
     172        var client = DeploymentService.UpdateClientFactory.CreateClient();
     173        try {
     174          foreach (DeploymentService.PluginDescription plugin in plugins) {
     175            byte[] zippedPackage = client.GetPlugin(plugin);
     176            Unpack(zippedPackage);
     177            OnInstalled(new PluginInfrastructureEventArgs(plugin));
     178          }
     179          client.Close();
     180        }
     181        catch (FaultException) {
     182          client.Abort();
    161183        }
    162184      }
     
    167189    /// </summary>
    168190    /// <param name="pluginNames"></param>
    169     public void Update(string connectionString, IEnumerable<IPluginDescription> plugins) {
    170       PluginInfrastructureCancelEventArgs args = new PluginInfrastructureCancelEventArgs(plugins.Select(x => x.Name + " " + x.Version));
     191    public void Update(IEnumerable<IPluginDescription> plugins) {
     192      PluginInfrastructureCancelEventArgs args = new PluginInfrastructureCancelEventArgs(plugins);
    171193      OnPreUpdate(args);
    172194      if (!args.Cancel) {
    173         using (var client = new DeploymentService.UpdateClient()) {
     195        var client = DeploymentService.UpdateClientFactory.CreateClient();
     196        try {
    174197          foreach (DeploymentService.PluginDescription plugin in plugins) {
    175198            byte[] zippedPackage = client.GetPlugin(plugin);
     
    177200            OnUpdated(new PluginInfrastructureEventArgs(plugin));
    178201          }
     202          client.Close();
     203        }
     204        catch (FaultException) {
     205          client.Abort();
    179206        }
    180207      }
     
    189216                      from file in pluginToDelete.Files
    190217                      select Path.Combine(pluginDir, file.Name);
    191       var args = new PluginInfrastructureCancelEventArgs(fileNames);
     218      var args = new PluginInfrastructureCancelEventArgs(plugins);
    192219      OnPreDelete(args);
    193220      if (!args.Cancel) {
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerConsole.cs

    r2922 r3006  
    5252    void installManager_PreUpdatePlugin(object sender, PluginInfrastructureCancelEventArgs e) {
    5353      Console.WriteLine("Following plugins are updated:");
    54       foreach (var info in e.Entities) {
     54      foreach (var info in e.Plugins) {
    5555        Console.WriteLine(e);
    5656      }
     
    6767    void installManager_PreRemovePlugin(object sender, PluginInfrastructureCancelEventArgs e) {
    6868      Console.WriteLine("Following files are deleted:");
    69       foreach (string fileName in e.Entities) {
    70         Console.WriteLine(fileName);
     69      foreach (var plugin in e.Plugins) {
     70        foreach (var file in plugin.Files)
     71          Console.WriteLine(file);
    7172      }
    7273      if (GetUserConfirmation()) e.Cancel = false;
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.Designer.cs

    r2922 r3006  
    2828      this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
    2929      this.removeButton = new System.Windows.Forms.Button();
    30       this.serverUrlLabel = new System.Windows.Forms.Label();
    31       this.serverUrlTextBox = new System.Windows.Forms.TextBox();
    32       this.refreshButton = new System.Windows.Forms.Button();
    3330      this.installButton = new System.Windows.Forms.Button();
    3431      this.tabControl = new System.Windows.Forms.TabControl();
     
    3936      this.logTabPage = new System.Windows.Forms.TabPage();
    4037      this.logTextBox = new System.Windows.Forms.TextBox();
     38      this.refreshButton = new System.Windows.Forms.Button();
     39      this.editConnectionButton = new System.Windows.Forms.Button();
    4140      this.statusStrip.SuspendLayout();
    4241      this.tabControl.SuspendLayout();
     
    8180      this.removeButton.Click += new System.EventHandler(this.removeButton_Click);
    8281      //
    83       // serverUrlLabel
    84       //
    85       this.serverUrlLabel.AutoSize = true;
    86       this.serverUrlLabel.Location = new System.Drawing.Point(9, 11);
    87       this.serverUrlLabel.Name = "serverUrlLabel";
    88       this.serverUrlLabel.Size = new System.Drawing.Size(73, 13);
    89       this.serverUrlLabel.TabIndex = 13;
    90       this.serverUrlLabel.Text = "Plugin Server:";
    91       //
    92       // serverUrlTextBox
    93       //
    94       this.serverUrlTextBox.Location = new System.Drawing.Point(88, 8);
    95       this.serverUrlTextBox.Name = "serverUrlTextBox";
    96       this.serverUrlTextBox.Size = new System.Drawing.Size(264, 20);
    97       this.serverUrlTextBox.TabIndex = 12;
    98       //
    99       // refreshButton
    100       //
    101       this.refreshButton.Location = new System.Drawing.Point(358, 6);
    102       this.refreshButton.Name = "refreshButton";
    103       this.refreshButton.Size = new System.Drawing.Size(75, 23);
    104       this.refreshButton.TabIndex = 11;
    105       this.refreshButton.Text = "Refresh";
    106       this.refreshButton.UseVisualStyleBackColor = true;
    107       this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
    108       //
    10982      // installButton
    11083      //
     
    157130      // remotePluginsTabPage
    158131      //
    159       this.remotePluginsTabPage.Controls.Add(this.serverUrlLabel);
     132      this.remotePluginsTabPage.Controls.Add(this.editConnectionButton);
    160133      this.remotePluginsTabPage.Controls.Add(this.remotePluginInstaller);
    161       this.remotePluginsTabPage.Controls.Add(this.serverUrlTextBox);
    162134      this.remotePluginsTabPage.Controls.Add(this.refreshButton);
    163135      this.remotePluginsTabPage.Controls.Add(this.installButton);
     
    204176      this.logTextBox.Size = new System.Drawing.Size(598, 586);
    205177      this.logTextBox.TabIndex = 0;
     178      //
     179      // refreshButton
     180      //
     181      this.refreshButton.Location = new System.Drawing.Point(8, 6);
     182      this.refreshButton.Name = "refreshButton";
     183      this.refreshButton.Size = new System.Drawing.Size(75, 23);
     184      this.refreshButton.TabIndex = 11;
     185      this.refreshButton.Text = "Refresh";
     186      this.refreshButton.UseVisualStyleBackColor = true;
     187      this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
     188      //
     189      // editConnectionButton
     190      //
     191      this.editConnectionButton.Location = new System.Drawing.Point(89, 6);
     192      this.editConnectionButton.Name = "editConnectionButton";
     193      this.editConnectionButton.Size = new System.Drawing.Size(108, 23);
     194      this.editConnectionButton.TabIndex = 16;
     195      this.editConnectionButton.Text = "Edit Connection...";
     196      this.editConnectionButton.UseVisualStyleBackColor = true;
     197      this.editConnectionButton.Click += new System.EventHandler(this.editConnectionButton_Click);
    206198      //
    207199      // InstallationManagerForm
     
    219211      this.localPluginsTabPage.ResumeLayout(false);
    220212      this.remotePluginsTabPage.ResumeLayout(false);
    221       this.remotePluginsTabPage.PerformLayout();
    222213      this.logTabPage.ResumeLayout(false);
    223214      this.logTabPage.PerformLayout();
     
    232223    private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar;
    233224    private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel;
    234     private System.Windows.Forms.Label serverUrlLabel;
    235     private System.Windows.Forms.TextBox serverUrlTextBox;
    236     private System.Windows.Forms.Button refreshButton;
    237225    private LocalPluginManager localPluginManager;
    238226    private RemotePluginInstaller remotePluginInstaller;
     
    244232    private System.Windows.Forms.TabPage logTabPage;
    245233    private System.Windows.Forms.TextBox logTextBox;
     234    private System.Windows.Forms.Button editConnectionButton;
     235    private System.Windows.Forms.Button refreshButton;
    246236  }
    247237}
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.cs

    r2922 r3006  
    1313  public partial class InstallationManagerForm : Form {
    1414    private class UpdateOrInstallPluginsBackgroundWorkerArgument {
    15       public string ConnectionString { get; set; }
    1615      public IEnumerable<IPluginDescription> PluginsToUpdate { get; set; }
    1716      public IEnumerable<IPluginDescription> PluginsToInstall { get; set; }
     
    5655      refreshLocalPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshLocalPluginsBackgroundWorker_RunWorkerCompleted);
    5756      #endregion
    58 
    59       // get default connection string
    60       using (var client = new DeploymentService.UpdateClient()) {
    61         serverUrlTextBox.Text = client.Endpoint.Address.ToString();
    62       }
    6357
    6458      installationManager = new InstallationManager(pluginDir);
     
    130124    void updateOrInstallPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) {
    131125      UpdateOrInstallPluginsBackgroundWorkerArgument info = (UpdateOrInstallPluginsBackgroundWorkerArgument)e.Argument;
    132       installationManager.Install(info.ConnectionString, info.PluginsToInstall);
    133       installationManager.Update(info.ConnectionString, info.PluginsToUpdate);
     126      installationManager.Install(info.PluginsToInstall);
     127      installationManager.Update(info.PluginsToUpdate);
    134128    }
    135129    #endregion
     
    147141
    148142    void refreshServerPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) {
    149       string connectionString = (string)e.Argument;
    150 
    151143      RefreshBackgroundWorkerResult result = new RefreshBackgroundWorkerResult();
    152       result.RemotePlugins = installationManager.GetRemotePluginList(connectionString);
    153       result.RemoteProducts = installationManager.GetRemoteProductList(connectionString);
     144      result.RemotePlugins = installationManager.GetRemotePluginList();
     145      result.RemoteProducts = installationManager.GetRemoteProductList();
    154146      e.Cancel = false;
    155147      e.Result = result;
     
    180172    #region installation manager event handlers
    181173    void installationManager_PreUpdatePlugin(object sender, PluginInfrastructureCancelEventArgs e) {
    182       if (ConfirmUpdateAction(e.Entities) == true) e.Cancel = false;
    183       else e.Cancel = true;
     174      if (e.Plugins.Count() > 0) {
     175        e.Cancel = ConfirmUpdateAction(e.Plugins) == false;
     176      }
    184177    }
    185178
    186179    void installationManager_PreRemovePlugin(object sender, PluginInfrastructureCancelEventArgs e) {
    187       if (ConfirmRemoveAction(e.Entities) == true) e.Cancel = false;
    188       else e.Cancel = true;
     180      if (e.Plugins.Count() > 0) {
     181        e.Cancel = ConfirmRemoveAction(e.Plugins) == false;
     182      }
    189183    }
    190184
    191185    void installationManager_PreInstallPlugin(object sender, PluginInfrastructureCancelEventArgs e) {
    192       if (e.Entities.Count() > 0)
    193         SetStatusStrip("Installing " + e.Entities.Aggregate((a, b) => a + Environment.NewLine + b));
     186      if (e.Plugins.Count() > 0)
     187        if (ConfirmInstallAction(e.Plugins) == true) {
     188          SetStatusStrip("Installing " + e.Plugins.Aggregate("", (a, b) => a.ToString() + "; " + b.ToString()));
     189          e.Cancel = false;
     190        } else {
     191          e.Cancel = true;
     192          SetStatusStrip("Install canceled");
     193        }
    194194    }
    195195
     
    239239      var pluginsToInstall = remotePluginInstaller.CheckedPlugins.Except(pluginsToUpdate);
    240240
    241       updateOrInstallInfo.ConnectionString = serverUrlTextBox.Text;
    242241      updateOrInstallInfo.PluginsToInstall = pluginsToInstall;
    243242      updateOrInstallInfo.PluginsToUpdate = pluginsToUpdate;
     
    255254
    256255    #region confirmation dialogs
    257     private bool ConfirmRemoveAction(IEnumerable<string> fileNames) {
     256    private bool ConfirmRemoveAction(IEnumerable<IPluginDescription> plugins) {
    258257      StringBuilder strBuilder = new StringBuilder();
    259258      strBuilder.AppendLine("Delete files:");
    260       foreach (var fileName in fileNames) {
    261         strBuilder.AppendLine(fileName);
     259      foreach (var plugin in plugins) {
     260        foreach (var file in plugin.Files) {
     261          strBuilder.AppendLine(file.ToString());
     262        }
    262263      }
    263264      return MessageBox.Show(strBuilder.ToString(), "Confirm Delete", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK;
    264265    }
    265266
    266     private bool ConfirmUpdateAction(IEnumerable<string> plugins) {
     267    private bool ConfirmUpdateAction(IEnumerable<IPluginDescription> plugins) {
    267268      StringBuilder strBuilder = new StringBuilder();
    268269      strBuilder.AppendLine("Update plugins:");
    269270      foreach (var plugin in plugins) {
    270         strBuilder.AppendLine(plugin);
     271        strBuilder.AppendLine(plugin.ToString());
    271272      }
    272273      return MessageBox.Show(strBuilder.ToString(), "Confirm Update", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK;
    273274    }
     275
     276    private bool ConfirmInstallAction(IEnumerable<IPluginDescription> plugins) {
     277      foreach (var plugin in plugins) {
     278        if (!string.IsNullOrEmpty(plugin.LicenseText)) {
     279          var licenseConfirmationBox = new LicenseConfirmationBox(plugin);
     280          if (licenseConfirmationBox.ShowDialog() != DialogResult.OK)
     281            return false;
     282        }
     283      }
     284      return true;
     285    }
     286
    274287
    275288    #endregion
     
    306319      toolStripProgressBar.Visible = true;
    307320      DisableControls();
    308       refreshServerPluginsBackgroundWorker.RunWorkerAsync(serverUrlTextBox.Text);
     321      refreshServerPluginsBackgroundWorker.RunWorkerAsync();
    309322    }
    310323
     
    320333      //ClearPluginsList(remotePluginsListView);
    321334      refreshButton.Enabled = true;
    322       serverUrlTextBox.Enabled = true;
    323335      toolStripProgressBar.Visible = false;
    324336      Cursor = Cursors.Default;
     
    327339    private void UpdateControlsConnected() {
    328340      refreshButton.Enabled = true;
    329       serverUrlTextBox.Enabled = true;
    330341      toolStripProgressBar.Visible = false;
    331342      Cursor = Cursors.Default;
     
    345356      installButton.Enabled = remotePluginInstaller.CheckedPlugins.Count() > 0;
    346357    }
     358
     359    private void editConnectionButton_Click(object sender, EventArgs e) {
     360      (new ConnectionSetupView()).ShowInForm();
     361    }
    347362  }
    348363}
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginManager.Designer.cs

    r2922 r3006  
    5757      this.localPluginsListView.UseCompatibleStateImageBehavior = false;
    5858      this.localPluginsListView.View = System.Windows.Forms.View.Details;
     59      this.localPluginsListView.ItemActivate += new System.EventHandler(this.localPluginsListView_ItemActivate);
    5960      this.localPluginsListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.pluginsListView_ItemChecked);
    6061      //
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginManager.cs

    r2922 r3006  
    9292      if (ItemChecked != null) ItemChecked(this, e);
    9393    }
     94
     95    private void localPluginsListView_ItemActivate(object sender, EventArgs e) {
     96      if (localPluginsListView.SelectedItems.Count > 0) {
     97        var plugin = (PluginDescription)localPluginsListView.SelectedItems[0].Tag;
     98        PluginView pluginView = new PluginView(plugin);
     99        pluginView.ShowInForm();
     100      }
     101    }
    94102  }
    95103}
  • trunk/sources/HeuristicLab.PluginInfrastructure/HeuristicLab.PluginInfrastructure.csproj

    r2922 r3006  
    9393  </ItemGroup>
    9494  <ItemGroup>
     95    <Compile Include="Advanced\ConnectionSetupView.cs">
     96      <SubType>UserControl</SubType>
     97    </Compile>
     98    <Compile Include="Advanced\ConnectionSetupView.Designer.cs">
     99      <DependentUpon>ConnectionSetupView.cs</DependentUpon>
     100    </Compile>
     101    <Compile Include="Advanced\DeploymentService\AdminClientFactory.cs" />
    95102    <Compile Include="Advanced\DeploymentService\DeploymentService.cs" />
     103    <Compile Include="Advanced\DeploymentService\UpdateClientFactory.cs" />
    96104    <Compile Include="Advanced\InstallationManagerConsole.cs" />
    97105    <Compile Include="Advanced\InstallationManager.cs" />
     
    108116      <SubType>Code</SubType>
    109117    </Compile>
     118    <Compile Include="Advanced\LicenseConfirmationBox.cs">
     119      <SubType>Form</SubType>
     120    </Compile>
     121    <Compile Include="Advanced\LicenseConfirmationBox.Designer.cs">
     122      <DependentUpon>LicenseConfirmationBox.cs</DependentUpon>
     123    </Compile>
     124    <Compile Include="Advanced\LicenseView.cs">
     125      <SubType>UserControl</SubType>
     126    </Compile>
     127    <Compile Include="Advanced\LicenseView.Designer.cs">
     128      <DependentUpon>LicenseView.cs</DependentUpon>
     129    </Compile>
    110130    <Compile Include="Advanced\LocalPluginManager.cs">
    111131      <SubType>UserControl</SubType>
     
    113133    <Compile Include="Advanced\LocalPluginManager.Designer.cs">
    114134      <DependentUpon>LocalPluginManager.cs</DependentUpon>
     135    </Compile>
     136    <Compile Include="Advanced\InstallationManagerControl.cs">
     137      <SubType>UserControl</SubType>
     138    </Compile>
     139    <Compile Include="Advanced\InstallationManagerControl.Designer.cs">
     140      <DependentUpon>InstallationManagerControl.cs</DependentUpon>
     141    </Compile>
     142    <Compile Include="Advanced\PluginView.cs">
     143      <SubType>UserControl</SubType>
     144    </Compile>
     145    <Compile Include="Advanced\PluginView.Designer.cs">
     146      <DependentUpon>PluginView.cs</DependentUpon>
    115147    </Compile>
    116148    <Compile Include="Advanced\RemotePluginInstaller.cs">
     
    221253    <Content Include="Resources\List.gif" />
    222254    <Content Include="Resources\Logo_white.gif" />
     255    <EmbeddedResource Include="Advanced\ConnectionSetupView.resx">
     256      <DependentUpon>ConnectionSetupView.cs</DependentUpon>
     257    </EmbeddedResource>
     258    <EmbeddedResource Include="Advanced\DeploymentService\servdev.cer" />
     259    <EmbeddedResource Include="Advanced\LicenseConfirmationBox.resx">
     260      <DependentUpon>LicenseConfirmationBox.cs</DependentUpon>
     261    </EmbeddedResource>
     262    <EmbeddedResource Include="Advanced\LicenseView.resx">
     263      <DependentUpon>LicenseView.cs</DependentUpon>
     264    </EmbeddedResource>
     265    <EmbeddedResource Include="Advanced\PluginView.resx">
     266      <DependentUpon>PluginView.cs</DependentUpon>
     267    </EmbeddedResource>
    223268    <None Include="Resources\VS2008ImageLibrary_Actions_Delete.png" />
    224269    <None Include="Resources\VS2008ImageLibrary_CommonElements_Actions_Remove.png" />
    225270    <Content Include="Resources\VS2008ImageLibrary_CommonElements_Objects_Arrow_Down.png" />
     271    <None Include="Resources\VS2008ImageLibrary_Objects_File.png" />
     272    <None Include="Resources\VS2008ImageLibrary_Objects_Document.png" />
    226273    <None Include="Resources\VS2008ImageLibrary_Objects_Internet.png" />
    227274    <None Include="Resources\VS2008ImageLibrary_Objects_Install.png" />
  • trunk/sources/HeuristicLab.PluginInfrastructure/Manager/PluginFile.cs

    r2790 r3006  
    4747      this.type = type;
    4848    }
     49
     50    public override string ToString() {
     51      return name;
     52    }
    4953  }
    5054}
  • trunk/sources/HeuristicLab.PluginInfrastructure/Manager/PluginInfrastructureCancelEventArgs.cs

    r2922 r3006  
    2929  [Serializable]
    3030  internal sealed class PluginInfrastructureCancelEventArgs : CancelEventArgs {
    31     internal IEnumerable<string> Entities { get; private set; }
    32     internal PluginInfrastructureCancelEventArgs(IEnumerable<string> entities)
     31    internal IEnumerable<IPluginDescription> Plugins { get; private set; }
     32    internal PluginInfrastructureCancelEventArgs(IEnumerable<IPluginDescription> plugins)
    3333      : base() {
    34       this.Entities = entities;
     34      this.Plugins = plugins;
    3535    }
    3636  }
  • trunk/sources/HeuristicLab.PluginInfrastructure/Properties/Settings.Designer.cs

    r2597 r3006  
    4242        }
    4343       
    44         [global::System.Configuration.ApplicationScopedSettingAttribute()]
     44        [global::System.Configuration.UserScopedSettingAttribute()]
    4545        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    46         [global::System.Configuration.DefaultSettingValueAttribute("<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n<ArrayOfString xmlns:xsi=\"http://www.w3." +
    47             "org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n  <s" +
    48             "tring>http://localhost:59253/UpdateLocation.svc</string>\r\n</ArrayOfString>")]
    49         public global::System.Collections.Specialized.StringCollection UpdateLocations {
     46        [global::System.Configuration.DefaultSettingValueAttribute("http://servdev.heuristiclab.com/Deployment/Update.svc")]
     47        public string UpdateLocation {
    5048            get {
    51                 return ((global::System.Collections.Specialized.StringCollection)(this["UpdateLocations"]));
     49                return ((string)(this["UpdateLocation"]));
     50            }
     51            set {
     52                this["UpdateLocation"] = value;
     53            }
     54        }
     55       
     56        [global::System.Configuration.UserScopedSettingAttribute()]
     57        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     58        [global::System.Configuration.DefaultSettingValueAttribute("")]
     59        public string UpdateLocationUserName {
     60            get {
     61                return ((string)(this["UpdateLocationUserName"]));
     62            }
     63            set {
     64                this["UpdateLocationUserName"] = value;
     65            }
     66        }
     67       
     68        [global::System.Configuration.UserScopedSettingAttribute()]
     69        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     70        [global::System.Configuration.DefaultSettingValueAttribute("")]
     71        public string UpdateLocationPassword {
     72            get {
     73                return ((string)(this["UpdateLocationPassword"]));
     74            }
     75            set {
     76                this["UpdateLocationPassword"] = value;
     77            }
     78        }
     79       
     80        [global::System.Configuration.UserScopedSettingAttribute()]
     81        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     82        [global::System.Configuration.DefaultSettingValueAttribute("http://servdev.heuristiclab.com/Deployment/Admin.svc")]
     83        public string UpdateLocationAdministrationAddress {
     84            get {
     85                return ((string)(this["UpdateLocationAdministrationAddress"]));
     86            }
     87            set {
     88                this["UpdateLocationAdministrationAddress"] = value;
    5289            }
    5390        }
  • trunk/sources/HeuristicLab.PluginInfrastructure/Properties/Settings.settings

    r2597 r3006  
    99      <Value Profile="(Default)">-</Value>
    1010    </Setting>
    11     <Setting Name="UpdateLocations" Type="System.Collections.Specialized.StringCollection" Scope="Application">
    12       <Value Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
    13 &lt;ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
    14   &lt;string&gt;http://localhost:59253/UpdateLocation.svc&lt;/string&gt;
    15 &lt;/ArrayOfString&gt;</Value>
     11    <Setting Name="UpdateLocation" Type="System.String" Scope="User">
     12      <Value Profile="(Default)">http://servdev.heuristiclab.com/Deployment/Update.svc</Value>
     13    </Setting>
     14    <Setting Name="UpdateLocationUserName" Type="System.String" Scope="User">
     15      <Value Profile="(Default)" />
     16    </Setting>
     17    <Setting Name="UpdateLocationPassword" Type="System.String" Scope="User">
     18      <Value Profile="(Default)" />
     19    </Setting>
     20    <Setting Name="UpdateLocationAdministrationAddress" Type="System.String" Scope="User">
     21      <Value Profile="(Default)">http://servdev.heuristiclab.com/Deployment/Admin.svc</Value>
    1622    </Setting>
    1723  </Settings>
  • trunk/sources/HeuristicLab.PluginInfrastructure/Resources/Resources.Designer.cs

    r2922 r3006  
    7575        }
    7676       
     77        internal static System.Drawing.Bitmap Document {
     78            get {
     79                object obj = ResourceManager.GetObject("Document", resourceCulture);
     80                return ((System.Drawing.Bitmap)(obj));
     81            }
     82        }
     83       
     84        internal static System.Drawing.Bitmap File {
     85            get {
     86                object obj = ResourceManager.GetObject("File", resourceCulture);
     87                return ((System.Drawing.Bitmap)(obj));
     88            }
     89        }
     90       
    7791        internal static System.Drawing.Bitmap Install {
    7892            get {
  • trunk/sources/HeuristicLab.PluginInfrastructure/Resources/Resources.resx

    r2922 r3006  
    125125    <value>vs2008imagelibrary_objects_assembly.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
    126126  </data>
     127  <data name="Document" type="System.Resources.ResXFileRef, System.Windows.Forms">
     128    <value>VS2008ImageLibrary_Objects_Document.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
     129  </data>
     130  <data name="File" type="System.Resources.ResXFileRef, System.Windows.Forms">
     131    <value>VS2008ImageLibrary_Objects_File.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
     132  </data>
    127133  <data name="Install" type="System.Resources.ResXFileRef, System.Windows.Forms">
    128134    <value>vs2008imagelibrary_objects_install.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  • trunk/sources/HeuristicLab.PluginInfrastructure/app.config

    r2922 r3006  
    44        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
    55            <section name="HeuristicLab.PluginInfrastructure.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
     6        </sectionGroup>
     7        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
     8            <section name="HeuristicLab.PluginInfrastructure.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    69        </sectionGroup>
    710    </configSections>
     
    1316            <setting name="Organization" serializeAs="String">
    1417                <value>-</value>
    15             </setting>
    16             <setting name="UpdateLocations" serializeAs="Xml">
    17                 <value>
    18                     <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    19                         xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    20                         <string>http://localhost:59253/UpdateLocation.svc</string>
    21                     </ArrayOfString>
    22                 </value>
    2318            </setting>
    2419        </HeuristicLab.PluginInfrastructure.Properties.Settings>
     
    4035                        <transport clientCredentialType="Windows" proxyCredentialType="None"
    4136                            realm="" />
    42                         <message clientCredentialType="Windows" negotiateServiceCredential="true"
     37                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
    4338                            algorithmSuite="Default" establishSecurityContext="true" />
    4439                    </security>
     
    5752                        <transport clientCredentialType="Windows" proxyCredentialType="None"
    5853                            realm="" />
    59                         <message clientCredentialType="Windows" negotiateServiceCredential="true"
     54                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
    6055                            algorithmSuite="Default" establishSecurityContext="true" />
    6156                    </security>
     
    6459        </bindings>
    6560        <client>
    66             <endpoint address="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Update/"
     61            <endpoint address="http://servdev.heuristiclab.com/Deployment/Update.svc"
    6762                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IUpdate"
    6863                contract="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdate"
    6964                name="WSHttpBinding_IUpdate">
    7065                <identity>
    71                     <dns value="localhost" />
     66                    <certificate encodedValue="AwAAAAEAAAAUAAAAFhNc5P5CrrUsDAETV1gq2wDRXQ0gAAAAAQAAACcCAAAwggIjMIIBjKADAgECAhCnTkk2TwtajEKLiJLyjCpwMA0GCSqGSIb3DQEBBAUAMCMxITAfBgNVBAMTGHNlcnZkZXYuaGV1cmlzdGljbGFiLmNvbTAeFw0xMDAzMTAxNTI4MTJaFw0zOTEyMzEyMzU5NTlaMCMxITAfBgNVBAMTGHNlcnZkZXYuaGV1cmlzdGljbGFiLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArJSMi2lAXj/Z9sMiLjiUmqUfNSfozaio/mjR6PxbDPBWZp6xTFdDLnBx+kHMBp+gc75hMI6wCFHB8PYud8tHMgJFDssGBUZkEN2vFZ0h41efyXo9U0o90KVFWFBQWOz+Opnalqohh8qHnOczo1zabeLFf79pC81Y6QGNkSyQcikCAwEAAaNYMFYwVAYDVR0BBE0wS4AQ1x+ArbPOrv0XwUivnGidCKElMCMxITAfBgNVBAMTGHNlcnZkZXYuaGV1cmlzdGljbGFiLmNvbYIQp05JNk8LWoxCi4iS8owqcDANBgkqhkiG9w0BAQQFAAOBgQBU8cGNgEnkWLs3v433WBC2Sl6BiPk6IchsqfxECp1Q4j/gqsIe9xRNnjxD5YEj0HGdqjrKBwF8XrOXPgyXQXfM4ju3INGLSJ1WH/oODbgbKnqQ/7TSJ++y1x0lnDgh+ibqjchsrBrqzKfkBNOa4B3g1M9q1eNVDOyGWu7GiZAUTA==" />
    7267                </identity>
    7368            </endpoint>
    74             <endpoint address="http://localhost:8731/Design_Time_Addresses/HeuristicLab.Services.Deployment/Admin/"
     69            <endpoint address="http://servdev.heuristiclab.com/Deployment/Admin.svc"
    7570                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdmin"
    7671                contract="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdmin"
    7772                name="WSHttpBinding_IAdmin">
    7873                <identity>
    79                     <dns value="localhost" />
     74                    <certificate encodedValue="AwAAAAEAAAAUAAAAFhNc5P5CrrUsDAETV1gq2wDRXQ0gAAAAAQAAACcCAAAwggIjMIIBjKADAgECAhCnTkk2TwtajEKLiJLyjCpwMA0GCSqGSIb3DQEBBAUAMCMxITAfBgNVBAMTGHNlcnZkZXYuaGV1cmlzdGljbGFiLmNvbTAeFw0xMDAzMTAxNTI4MTJaFw0zOTEyMzEyMzU5NTlaMCMxITAfBgNVBAMTGHNlcnZkZXYuaGV1cmlzdGljbGFiLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArJSMi2lAXj/Z9sMiLjiUmqUfNSfozaio/mjR6PxbDPBWZp6xTFdDLnBx+kHMBp+gc75hMI6wCFHB8PYud8tHMgJFDssGBUZkEN2vFZ0h41efyXo9U0o90KVFWFBQWOz+Opnalqohh8qHnOczo1zabeLFf79pC81Y6QGNkSyQcikCAwEAAaNYMFYwVAYDVR0BBE0wS4AQ1x+ArbPOrv0XwUivnGidCKElMCMxITAfBgNVBAMTGHNlcnZkZXYuaGV1cmlzdGljbGFiLmNvbYIQp05JNk8LWoxCi4iS8owqcDANBgkqhkiG9w0BAQQFAAOBgQBU8cGNgEnkWLs3v433WBC2Sl6BiPk6IchsqfxECp1Q4j/gqsIe9xRNnjxD5YEj0HGdqjrKBwF8XrOXPgyXQXfM4ju3INGLSJ1WH/oODbgbKnqQ/7TSJ++y1x0lnDgh+ibqjchsrBrqzKfkBNOa4B3g1M9q1eNVDOyGWu7GiZAUTA==" />
    8075                </identity>
    8176            </endpoint>
    8277        </client>
    8378    </system.serviceModel>
     79    <userSettings>
     80        <HeuristicLab.PluginInfrastructure.Properties.Settings>
     81            <setting name="UpdateLocation" serializeAs="String">
     82                <value>http://servdev.heuristiclab.com/Deployment/Update.svc</value>
     83            </setting>
     84            <setting name="UpdateLocationUserName" serializeAs="String">
     85                <value />
     86            </setting>
     87            <setting name="UpdateLocationPassword" serializeAs="String">
     88                <value />
     89            </setting>
     90            <setting name="UpdateLocationAdministrationAddress" serializeAs="String">
     91                <value>http://servdev.heuristiclab.com/Deployment/Admin.svc</value>
     92            </setting>
     93        </HeuristicLab.PluginInfrastructure.Properties.Settings>
     94    </userSettings>
    8495</configuration>
Note: See TracChangeset for help on using the changeset viewer.