[mapguide-commits] r5872 - in trunk/Tools: . MgInstantSetup
MgInstantSetup/InstantSetup MgInstantSetup/InstantSetup/Properties
MgInstantSetup/InstantSetup.Core
MgInstantSetup/InstantSetup.Core/Properties
MgInstantSetup/InstantSetup.Core/Resources
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Mon May 30 09:51:56 EDT 2011
Author: jng
Date: 2011-05-30 06:51:56 -0700 (Mon, 30 May 2011)
New Revision: 5872
Added:
trunk/Tools/MgInstantSetup/
trunk/Tools/MgInstantSetup/InstantSetup.Core/
trunk/Tools/MgInstantSetup/InstantSetup.Core/AbstractSetupConfigurationProcess.cs
trunk/Tools/MgInstantSetup/InstantSetup.Core/ApacheSetupConfigurationProcess.cs
trunk/Tools/MgInstantSetup/InstantSetup.Core/IISSetupConfigurationProcess.cs
trunk/Tools/MgInstantSetup/InstantSetup.Core/IniFile.cs
trunk/Tools/MgInstantSetup/InstantSetup.Core/InstantSetup.Core.csproj
trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/
trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/AssemblyInfo.cs
trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/Resources.Designer.cs
trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/Resources.resx
trunk/Tools/MgInstantSetup/InstantSetup.Core/Resources/
trunk/Tools/MgInstantSetup/InstantSetup.Core/Resources/APACHE_WEB.txt
trunk/Tools/MgInstantSetup/InstantSetup.Core/Resources/SERVER.txt
trunk/Tools/MgInstantSetup/InstantSetup.Core/app.config
trunk/Tools/MgInstantSetup/InstantSetup/
trunk/Tools/MgInstantSetup/InstantSetup/ApacheConfigCtrl.Designer.cs
trunk/Tools/MgInstantSetup/InstantSetup/ApacheConfigCtrl.cs
trunk/Tools/MgInstantSetup/InstantSetup/ApacheConfigCtrl.resx
trunk/Tools/MgInstantSetup/InstantSetup/Form1.Designer.cs
trunk/Tools/MgInstantSetup/InstantSetup/Form1.cs
trunk/Tools/MgInstantSetup/InstantSetup/Form1.resx
trunk/Tools/MgInstantSetup/InstantSetup/IConfigurationView.cs
trunk/Tools/MgInstantSetup/InstantSetup/IISConfigCtrl.Designer.cs
trunk/Tools/MgInstantSetup/InstantSetup/IISConfigCtrl.cs
trunk/Tools/MgInstantSetup/InstantSetup/InstantSetup.csproj
trunk/Tools/MgInstantSetup/InstantSetup/Program.cs
trunk/Tools/MgInstantSetup/InstantSetup/Properties/
trunk/Tools/MgInstantSetup/InstantSetup/Properties/AssemblyInfo.cs
trunk/Tools/MgInstantSetup/InstantSetup/Properties/Resources.Designer.cs
trunk/Tools/MgInstantSetup/InstantSetup/Properties/Resources.resx
trunk/Tools/MgInstantSetup/InstantSetup/Properties/Settings.Designer.cs
trunk/Tools/MgInstantSetup/InstantSetup/Properties/Settings.settings
trunk/Tools/MgInstantSetup/InstantSetup/app.config
trunk/Tools/MgInstantSetup/MgInstantSetup.sln
trunk/Tools/MgInstantSetup/MgInstantSetup.suo
Log:
#1608: Initial import of MgInstantSetup utility. Works with a freshly prepared build of MGOS 2.2
Added: trunk/Tools/MgInstantSetup/InstantSetup/ApacheConfigCtrl.Designer.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/ApacheConfigCtrl.Designer.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/ApacheConfigCtrl.Designer.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,310 @@
+namespace InstantSetup
+{
+ partial class ApacheConfigCtrl
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.numSitePort = new System.Windows.Forms.NumericUpDown();
+ this.numClientPort = new System.Windows.Forms.NumericUpDown();
+ this.numAdminPort = new System.Windows.Forms.NumericUpDown();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.numHttpdPort = new System.Windows.Forms.NumericUpDown();
+ this.label6 = new System.Windows.Forms.Label();
+ this.txtVirtualDirectory = new System.Windows.Forms.TextBox();
+ this.label4 = new System.Windows.Forms.Label();
+ this.groupBox3 = new System.Windows.Forms.GroupBox();
+ this.numTomcatPort = new System.Windows.Forms.NumericUpDown();
+ this.label5 = new System.Windows.Forms.Label();
+ this.chkEnableJava = new System.Windows.Forms.CheckBox();
+ this.txtServiceName = new System.Windows.Forms.TextBox();
+ this.label7 = new System.Windows.Forms.Label();
+ this.groupBox1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numSitePort)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numClientPort)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numAdminPort)).BeginInit();
+ this.groupBox2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numHttpdPort)).BeginInit();
+ this.groupBox3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numTomcatPort)).BeginInit();
+ this.SuspendLayout();
+ //
+ // groupBox1
+ //
+ this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.groupBox1.Controls.Add(this.numSitePort);
+ this.groupBox1.Controls.Add(this.numClientPort);
+ this.groupBox1.Controls.Add(this.numAdminPort);
+ this.groupBox1.Controls.Add(this.label3);
+ this.groupBox1.Controls.Add(this.label2);
+ this.groupBox1.Controls.Add(this.label1);
+ this.groupBox1.Location = new System.Drawing.Point(4, 4);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(440, 115);
+ this.groupBox1.TabIndex = 0;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Port Numbers";
+ //
+ // numSitePort
+ //
+ this.numSitePort.Location = new System.Drawing.Point(154, 78);
+ this.numSitePort.Maximum = new decimal(new int[] {
+ 65536,
+ 0,
+ 0,
+ 0});
+ this.numSitePort.Name = "numSitePort";
+ this.numSitePort.Size = new System.Drawing.Size(120, 20);
+ this.numSitePort.TabIndex = 5;
+ this.numSitePort.ValueChanged += new System.EventHandler(this.numSitePort_ValueChanged);
+ //
+ // numClientPort
+ //
+ this.numClientPort.Location = new System.Drawing.Point(154, 52);
+ this.numClientPort.Maximum = new decimal(new int[] {
+ 65536,
+ 0,
+ 0,
+ 0});
+ this.numClientPort.Name = "numClientPort";
+ this.numClientPort.Size = new System.Drawing.Size(120, 20);
+ this.numClientPort.TabIndex = 4;
+ this.numClientPort.ValueChanged += new System.EventHandler(this.numClientPort_ValueChanged);
+ //
+ // numAdminPort
+ //
+ this.numAdminPort.Location = new System.Drawing.Point(154, 26);
+ this.numAdminPort.Maximum = new decimal(new int[] {
+ 65536,
+ 0,
+ 0,
+ 0});
+ this.numAdminPort.Name = "numAdminPort";
+ this.numAdminPort.Size = new System.Drawing.Size(120, 20);
+ this.numAdminPort.TabIndex = 3;
+ this.numAdminPort.ValueChanged += new System.EventHandler(this.numAdminPort_ValueChanged);
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(23, 80);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(87, 13);
+ this.label3.TabIndex = 2;
+ this.label3.Text = "Site Connections";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(23, 54);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(95, 13);
+ this.label2.TabIndex = 1;
+ this.label2.Text = "Client Connections";
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(23, 26);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(98, 13);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "Admin Connections";
+ //
+ // groupBox2
+ //
+ this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.groupBox2.Controls.Add(this.txtServiceName);
+ this.groupBox2.Controls.Add(this.label7);
+ this.groupBox2.Controls.Add(this.numHttpdPort);
+ this.groupBox2.Controls.Add(this.label6);
+ this.groupBox2.Controls.Add(this.txtVirtualDirectory);
+ this.groupBox2.Controls.Add(this.label4);
+ this.groupBox2.Location = new System.Drawing.Point(4, 126);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Size = new System.Drawing.Size(440, 114);
+ this.groupBox2.TabIndex = 1;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "General";
+ //
+ // numHttpdPort
+ //
+ this.numHttpdPort.Location = new System.Drawing.Point(154, 51);
+ this.numHttpdPort.Maximum = new decimal(new int[] {
+ 65536,
+ 0,
+ 0,
+ 0});
+ this.numHttpdPort.Name = "numHttpdPort";
+ this.numHttpdPort.Size = new System.Drawing.Size(120, 20);
+ this.numHttpdPort.TabIndex = 9;
+ this.numHttpdPort.ValueChanged += new System.EventHandler(this.numHttpdPort_ValueChanged);
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(23, 53);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(93, 13);
+ this.label6.TabIndex = 8;
+ this.label6.Text = "httpd Port Number";
+ //
+ // txtVirtualDirectory
+ //
+ this.txtVirtualDirectory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtVirtualDirectory.Location = new System.Drawing.Point(154, 25);
+ this.txtVirtualDirectory.Name = "txtVirtualDirectory";
+ this.txtVirtualDirectory.Size = new System.Drawing.Size(236, 20);
+ this.txtVirtualDirectory.TabIndex = 1;
+ this.txtVirtualDirectory.TextChanged += new System.EventHandler(this.txtVirtualDirectory_TextChanged);
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(23, 28);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(112, 13);
+ this.label4.TabIndex = 0;
+ this.label4.Text = "Virtual Directory Name";
+ //
+ // groupBox3
+ //
+ this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.groupBox3.Controls.Add(this.chkEnableJava);
+ this.groupBox3.Controls.Add(this.numTomcatPort);
+ this.groupBox3.Controls.Add(this.label5);
+ this.groupBox3.Location = new System.Drawing.Point(4, 246);
+ this.groupBox3.Name = "groupBox3";
+ this.groupBox3.Size = new System.Drawing.Size(440, 106);
+ this.groupBox3.TabIndex = 2;
+ this.groupBox3.TabStop = false;
+ //
+ // numTomcatPort
+ //
+ this.numTomcatPort.Location = new System.Drawing.Point(154, 29);
+ this.numTomcatPort.Maximum = new decimal(new int[] {
+ 65536,
+ 0,
+ 0,
+ 0});
+ this.numTomcatPort.Name = "numTomcatPort";
+ this.numTomcatPort.Size = new System.Drawing.Size(120, 20);
+ this.numTomcatPort.TabIndex = 7;
+ this.numTomcatPort.ValueChanged += new System.EventHandler(this.numTomcatPort_ValueChanged);
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(23, 31);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(105, 13);
+ this.label5.TabIndex = 6;
+ this.label5.Text = "Tomcat Port Number";
+ //
+ // chkEnableJava
+ //
+ this.chkEnableJava.AutoSize = true;
+ this.chkEnableJava.Location = new System.Drawing.Point(6, 0);
+ this.chkEnableJava.Name = "chkEnableJava";
+ this.chkEnableJava.Size = new System.Drawing.Size(85, 17);
+ this.chkEnableJava.TabIndex = 0;
+ this.chkEnableJava.Text = "Enable Java";
+ this.chkEnableJava.UseVisualStyleBackColor = true;
+ //
+ // txtServiceName
+ //
+ this.txtServiceName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtServiceName.Location = new System.Drawing.Point(154, 77);
+ this.txtServiceName.Name = "txtServiceName";
+ this.txtServiceName.Size = new System.Drawing.Size(236, 20);
+ this.txtServiceName.TabIndex = 11;
+ this.txtServiceName.TextChanged += new System.EventHandler(this.txtServiceName_TextChanged);
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Location = new System.Drawing.Point(23, 80);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(74, 13);
+ this.label7.TabIndex = 10;
+ this.label7.Text = "Service Name";
+ //
+ // ApacheConfigCtrl
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.groupBox3);
+ this.Controls.Add(this.groupBox2);
+ this.Controls.Add(this.groupBox1);
+ this.Name = "ApacheConfigCtrl";
+ this.Size = new System.Drawing.Size(447, 355);
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numSitePort)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numClientPort)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.numAdminPort)).EndInit();
+ this.groupBox2.ResumeLayout(false);
+ this.groupBox2.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numHttpdPort)).EndInit();
+ this.groupBox3.ResumeLayout(false);
+ this.groupBox3.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.numTomcatPort)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.NumericUpDown numSitePort;
+ private System.Windows.Forms.NumericUpDown numClientPort;
+ private System.Windows.Forms.NumericUpDown numAdminPort;
+ private System.Windows.Forms.GroupBox groupBox2;
+ private System.Windows.Forms.TextBox txtVirtualDirectory;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.GroupBox groupBox3;
+ private System.Windows.Forms.CheckBox chkEnableJava;
+ private System.Windows.Forms.NumericUpDown numTomcatPort;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.NumericUpDown numHttpdPort;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.TextBox txtServiceName;
+ private System.Windows.Forms.Label label7;
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup/ApacheConfigCtrl.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/ApacheConfigCtrl.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/ApacheConfigCtrl.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,98 @@
+#region Disclaimer / License
+// Copyright (C) 2011, Jackie Ng, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+using InstantSetup.Core;
+
+namespace InstantSetup
+{
+ public partial class ApacheConfigCtrl : UserControl, IConfigurationView
+ {
+ public ApacheConfigCtrl()
+ {
+ InitializeComponent();
+ var apacheConf = new ApacheSetupConfigurationProcess();
+ this.Config = apacheConf;
+
+ numAdminPort.Value = apacheConf.ServerAdminPort;
+ numClientPort.Value = apacheConf.ServerClientPort;
+ numSitePort.Value = apacheConf.ServerSitePort;
+
+ txtVirtualDirectory.Text = apacheConf.VirtualDirectoryName;
+ numHttpdPort.Value = apacheConf.ApachePortNumber;
+ txtServiceName.Text = apacheConf.HttpdServiceName;
+
+ chkEnableJava.Checked = apacheConf.EnableJava;
+ numTomcatPort.Value = apacheConf.TomcatPortNumber;
+ }
+
+ private ApacheSetupConfigurationProcess ApacheConfig { get { return (ApacheSetupConfigurationProcess)this.Config; } }
+
+ public AbstractSetupConfigurationProcess Config
+ {
+ get;
+ private set;
+ }
+
+ public Control Wrapper
+ {
+ get { return this; }
+ }
+
+ private void numAdminPort_ValueChanged(object sender, EventArgs e)
+ {
+ this.Config.ServerAdminPort = Convert.ToInt32(numAdminPort.Value);
+ }
+
+ private void numClientPort_ValueChanged(object sender, EventArgs e)
+ {
+ this.Config.ServerClientPort = Convert.ToInt32(numClientPort.Value);
+ }
+
+ private void numSitePort_ValueChanged(object sender, EventArgs e)
+ {
+ this.Config.ServerSitePort = Convert.ToInt32(numSitePort.Value);
+ }
+
+ private void numHttpdPort_ValueChanged(object sender, EventArgs e)
+ {
+ ApacheConfig.ApachePortNumber = Convert.ToInt32(numHttpdPort.Value);
+ }
+
+ private void numTomcatPort_ValueChanged(object sender, EventArgs e)
+ {
+ ApacheConfig.TomcatPortNumber = Convert.ToInt32(numTomcatPort.Value);
+ }
+
+ private void txtVirtualDirectory_TextChanged(object sender, EventArgs e)
+ {
+ ApacheConfig.VirtualDirectoryName = txtVirtualDirectory.Text;
+ }
+
+ private void txtServiceName_TextChanged(object sender, EventArgs e)
+ {
+ ApacheConfig.HttpdServiceName = txtServiceName.Text;
+ }
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup/ApacheConfigCtrl.resx
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/ApacheConfigCtrl.resx (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/ApacheConfigCtrl.resx 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
Added: trunk/Tools/MgInstantSetup/InstantSetup/Form1.Designer.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/Form1.Designer.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/Form1.Designer.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,212 @@
+namespace InstantSetup
+{
+ partial class Form1
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.btnConfigure = new System.Windows.Forms.Button();
+ this.tabControl1 = new System.Windows.Forms.TabControl();
+ this.TAB_APACHE = new System.Windows.Forms.TabPage();
+ this.label1 = new System.Windows.Forms.Label();
+ this.txtServiceName = new System.Windows.Forms.TextBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.txtSourceDirectory = new System.Windows.Forms.TextBox();
+ this.btnSourceDir = new System.Windows.Forms.Button();
+ this.chkInstallServices = new System.Windows.Forms.CheckBox();
+ this.folderBrowser = new System.Windows.Forms.FolderBrowserDialog();
+ this.button1 = new System.Windows.Forms.Button();
+ this.txtBatchOutput = new System.Windows.Forms.TextBox();
+ this.label3 = new System.Windows.Forms.Label();
+ this.tabControl1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // btnConfigure
+ //
+ this.btnConfigure.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnConfigure.Location = new System.Drawing.Point(465, 464);
+ this.btnConfigure.Name = "btnConfigure";
+ this.btnConfigure.Size = new System.Drawing.Size(75, 23);
+ this.btnConfigure.TabIndex = 0;
+ this.btnConfigure.Text = "Configure";
+ this.btnConfigure.UseVisualStyleBackColor = true;
+ this.btnConfigure.Click += new System.EventHandler(this.btnConfigure_Click);
+ //
+ // tabControl1
+ //
+ this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.tabControl1.Controls.Add(this.TAB_APACHE);
+ this.tabControl1.Location = new System.Drawing.Point(13, 87);
+ this.tabControl1.Name = "tabControl1";
+ this.tabControl1.SelectedIndex = 0;
+ this.tabControl1.Size = new System.Drawing.Size(527, 371);
+ this.tabControl1.TabIndex = 1;
+ //
+ // TAB_APACHE
+ //
+ this.TAB_APACHE.Location = new System.Drawing.Point(4, 22);
+ this.TAB_APACHE.Name = "TAB_APACHE";
+ this.TAB_APACHE.Padding = new System.Windows.Forms.Padding(3);
+ this.TAB_APACHE.Size = new System.Drawing.Size(519, 345);
+ this.TAB_APACHE.TabIndex = 1;
+ this.TAB_APACHE.Text = "Apache";
+ this.TAB_APACHE.UseVisualStyleBackColor = true;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(14, 64);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(126, 13);
+ this.label1.TabIndex = 2;
+ this.label1.Text = "MapGuide Service Name";
+ //
+ // txtServiceName
+ //
+ this.txtServiceName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtServiceName.Location = new System.Drawing.Point(156, 61);
+ this.txtServiceName.Name = "txtServiceName";
+ this.txtServiceName.Size = new System.Drawing.Size(380, 20);
+ this.txtServiceName.TabIndex = 3;
+ this.txtServiceName.TextChanged += new System.EventHandler(this.txtServiceName_TextChanged);
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(14, 12);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(86, 13);
+ this.label2.TabIndex = 4;
+ this.label2.Text = "Source Directory";
+ //
+ // txtSourceDirectory
+ //
+ this.txtSourceDirectory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtSourceDirectory.Location = new System.Drawing.Point(156, 9);
+ this.txtSourceDirectory.Name = "txtSourceDirectory";
+ this.txtSourceDirectory.Size = new System.Drawing.Size(345, 20);
+ this.txtSourceDirectory.TabIndex = 5;
+ this.txtSourceDirectory.TextChanged += new System.EventHandler(this.txtSourceDirectory_TextChanged);
+ //
+ // btnSourceDir
+ //
+ this.btnSourceDir.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnSourceDir.Location = new System.Drawing.Point(507, 7);
+ this.btnSourceDir.Name = "btnSourceDir";
+ this.btnSourceDir.Size = new System.Drawing.Size(29, 23);
+ this.btnSourceDir.TabIndex = 6;
+ this.btnSourceDir.Text = "...";
+ this.btnSourceDir.UseVisualStyleBackColor = true;
+ this.btnSourceDir.Click += new System.EventHandler(this.btnSourceDir_Click);
+ //
+ // chkInstallServices
+ //
+ this.chkInstallServices.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.chkInstallServices.AutoSize = true;
+ this.chkInstallServices.Location = new System.Drawing.Point(13, 468);
+ this.chkInstallServices.Name = "chkInstallServices";
+ this.chkInstallServices.Size = new System.Drawing.Size(97, 17);
+ this.chkInstallServices.TabIndex = 7;
+ this.chkInstallServices.Text = "Install Services";
+ this.chkInstallServices.UseVisualStyleBackColor = true;
+ this.chkInstallServices.CheckedChanged += new System.EventHandler(this.chkInstallServices_CheckedChanged);
+ //
+ // button1
+ //
+ this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.button1.Location = new System.Drawing.Point(507, 33);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(29, 23);
+ this.button1.TabIndex = 10;
+ this.button1.Text = "...";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // txtBatchOutput
+ //
+ this.txtBatchOutput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtBatchOutput.Location = new System.Drawing.Point(156, 35);
+ this.txtBatchOutput.Name = "txtBatchOutput";
+ this.txtBatchOutput.Size = new System.Drawing.Size(345, 20);
+ this.txtBatchOutput.TabIndex = 9;
+ this.txtBatchOutput.TextChanged += new System.EventHandler(this.txtBatchOutput_TextChanged);
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(14, 38);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(134, 13);
+ this.label3.TabIndex = 8;
+ this.label3.Text = "Batch File Output Directory";
+ //
+ // Form1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(552, 499);
+ this.Controls.Add(this.button1);
+ this.Controls.Add(this.txtBatchOutput);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.chkInstallServices);
+ this.Controls.Add(this.btnSourceDir);
+ this.Controls.Add(this.txtSourceDirectory);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.txtServiceName);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.tabControl1);
+ this.Controls.Add(this.btnConfigure);
+ this.Name = "Form1";
+ this.Text = "MapGuide Instant Setup";
+ this.tabControl1.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button btnConfigure;
+ private System.Windows.Forms.TabControl tabControl1;
+ private System.Windows.Forms.TabPage TAB_APACHE;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.TextBox txtServiceName;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.TextBox txtSourceDirectory;
+ private System.Windows.Forms.Button btnSourceDir;
+ private System.Windows.Forms.CheckBox chkInstallServices;
+ private System.Windows.Forms.FolderBrowserDialog folderBrowser;
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.TextBox txtBatchOutput;
+ private System.Windows.Forms.Label label3;
+ }
+}
+
Added: trunk/Tools/MgInstantSetup/InstantSetup/Form1.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/Form1.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/Form1.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,96 @@
+#region Disclaimer / License
+// Copyright (C) 2011, Jackie Ng, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+
+namespace InstantSetup
+{
+ public partial class Form1 : Form
+ {
+ public Form1()
+ {
+ InitializeComponent();
+ _apacheConf = new ApacheConfigCtrl();
+
+ txtServiceName.Text = "MapGuide Server Trunk";
+ }
+
+ protected override void OnLoad(EventArgs e)
+ {
+ _apacheConf.Wrapper.Dock = DockStyle.Fill;
+ TAB_APACHE.Controls.Add(_apacheConf.Wrapper);
+ }
+
+ private IConfigurationView _apacheConf;
+
+ private void btnSourceDir_Click(object sender, EventArgs e)
+ {
+ if (folderBrowser.ShowDialog() == DialogResult.OK)
+ {
+ txtSourceDirectory.Text = folderBrowser.SelectedPath;
+ }
+ }
+
+ private void txtSourceDirectory_TextChanged(object sender, EventArgs e)
+ {
+ _apacheConf.Config.BuildOutputPath = txtSourceDirectory.Text;
+ }
+
+ private void txtBatchOutput_TextChanged(object sender, EventArgs e)
+ {
+ _apacheConf.Config.BatchFileOutputDirectory = txtBatchOutput.Text;
+ }
+
+ private void txtServiceName_TextChanged(object sender, EventArgs e)
+ {
+ _apacheConf.Config.MapGuideServiceName = txtServiceName.Text;
+ }
+
+ private void chkInstallServices_CheckedChanged(object sender, EventArgs e)
+ {
+ _apacheConf.Config.InstallServices = chkInstallServices.Checked;
+ }
+
+ private void btnConfigure_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ _apacheConf.Config.Execute();
+ MessageBox.Show("Configured");
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.ToString());
+ }
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ if (folderBrowser.ShowDialog() == DialogResult.OK)
+ {
+ txtBatchOutput.Text = folderBrowser.SelectedPath;
+ }
+ }
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup/Form1.resx
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/Form1.resx (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/Form1.resx 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <metadata name="folderBrowser.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
+</root>
\ No newline at end of file
Added: trunk/Tools/MgInstantSetup/InstantSetup/IConfigurationView.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/IConfigurationView.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/IConfigurationView.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,33 @@
+#region Disclaimer / License
+// Copyright (C) 2011, Jackie Ng, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using InstantSetup.Core;
+using System.Windows.Forms;
+
+namespace InstantSetup
+{
+ public interface IConfigurationView
+ {
+ AbstractSetupConfigurationProcess Config { get; }
+
+ Control Wrapper { get; }
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup/IISConfigCtrl.Designer.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/IISConfigCtrl.Designer.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/IISConfigCtrl.Designer.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,37 @@
+namespace InstantSetup
+{
+ partial class IISConfigCtrl
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ }
+
+ #endregion
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup/IISConfigCtrl.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/IISConfigCtrl.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/IISConfigCtrl.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,49 @@
+#region Disclaimer / License
+// Copyright (C) 2011, Jackie Ng, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+using InstantSetup.Core;
+
+namespace InstantSetup
+{
+ public partial class IISConfigCtrl : UserControl, IConfigurationView
+ {
+ public IISConfigCtrl()
+ {
+ InitializeComponent();
+ this.Config = new IISSetupConfigurationProcess();
+ }
+
+ public AbstractSetupConfigurationProcess Config
+ {
+ get;
+ private set;
+ }
+
+ public Control Wrapper
+ {
+ get { return this; }
+ }
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup/InstantSetup.csproj
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/InstantSetup.csproj (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/InstantSetup.csproj 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{72CDEB87-1ED2-4177-8C00-962E79F36CA6}</ProjectGuid>
+ <OutputType>WinExe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>InstantSetup</RootNamespace>
+ <AssemblyName>InstantSetup</AssemblyName>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <TargetFrameworkSubset>
+ </TargetFrameworkSubset>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Deployment" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="ApacheConfigCtrl.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="ApacheConfigCtrl.Designer.cs">
+ <DependentUpon>ApacheConfigCtrl.cs</DependentUpon>
+ </Compile>
+ <Compile Include="Form1.cs">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="Form1.Designer.cs">
+ <DependentUpon>Form1.cs</DependentUpon>
+ </Compile>
+ <Compile Include="IConfigurationView.cs" />
+ <Compile Include="IISConfigCtrl.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="IISConfigCtrl.Designer.cs">
+ <DependentUpon>IISConfigCtrl.cs</DependentUpon>
+ </Compile>
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <EmbeddedResource Include="ApacheConfigCtrl.resx">
+ <DependentUpon>ApacheConfigCtrl.cs</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Form1.resx">
+ <DependentUpon>Form1.cs</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Resources.resx</DependentUpon>
+ <DesignTime>True</DesignTime>
+ </Compile>
+ <None Include="app.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\InstantSetup.Core\InstantSetup.Core.csproj">
+ <Project>{70F74850-DC74-431E-993D-8200E13B026A}</Project>
+ <Name>InstantSetup.Core</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
Added: trunk/Tools/MgInstantSetup/InstantSetup/Program.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/Program.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/Program.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,38 @@
+#region Disclaimer / License
+// Copyright (C) 2011, Jackie Ng, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Windows.Forms;
+
+namespace InstantSetup
+{
+ static class Program
+ {
+ /// <summary>
+ /// The main entry point for the application.
+ /// </summary>
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup/Properties/AssemblyInfo.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/Properties/AssemblyInfo.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/Properties/AssemblyInfo.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("InstantSetup")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("InstantSetup")]
+[assembly: AssemblyCopyright("Copyright © 2011")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("19d7e671-753d-4b9a-921e-119d420ee116")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Added: trunk/Tools/MgInstantSetup/InstantSetup/Properties/Resources.Designer.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/Properties/Resources.Designer.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/Properties/Resources.Designer.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.4952
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace InstantSetup.Properties {
+ using System;
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("InstantSetup.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup/Properties/Resources.resx
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/Properties/Resources.resx (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/Properties/Resources.resx 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
Added: trunk/Tools/MgInstantSetup/InstantSetup/Properties/Settings.Designer.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/Properties/Settings.Designer.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/Properties/Settings.Designer.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.4952
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace InstantSetup.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup/Properties/Settings.settings
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/Properties/Settings.settings (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/Properties/Settings.settings 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
Added: trunk/Tools/MgInstantSetup/InstantSetup/app.config
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup/app.config (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup/app.config 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<configuration>
+<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
Added: trunk/Tools/MgInstantSetup/InstantSetup.Core/AbstractSetupConfigurationProcess.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup.Core/AbstractSetupConfigurationProcess.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup.Core/AbstractSetupConfigurationProcess.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,268 @@
+#region Disclaimer / License
+// Copyright (C) 2011, Jackie Ng, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+using System.Globalization;
+
+namespace InstantSetup.Core
+{
+ public enum ApiType
+ {
+ Php,
+ Java,
+ DotNet
+ }
+
+ /// <summary>
+ /// Base configuration setup process
+ /// </summary>
+ public abstract class AbstractSetupConfigurationProcess
+ {
+ protected AbstractSetupConfigurationProcess()
+ {
+ this.EnablePhp = true;
+
+ //Port numbers specified not to intentionally clash with an existing
+ //MGOS installation
+ this.ServerAdminPort = 2820;
+ this.ServerClientPort = 2821;
+ this.ServerSitePort = 2822;
+ }
+
+ public string BatchFileOutputDirectory { get; set; }
+
+ public string MapGuideServiceName { get; set; }
+
+ public bool InstallServices { get; set; }
+
+ public string BackupConfigPath { get; set; }
+
+ public bool BackupConfigFiles { get; set; }
+
+ /// <summary>
+ /// Gets or sets the build output path where the result of build.bat
+ /// in the MapGuide Source root copies files to
+ /// </summary>
+ public string BuildOutputPath { get; set; }
+
+ /// <summary>
+ /// The server bin directory
+ /// </summary>
+ public virtual string ServerBinDir
+ {
+ get
+ {
+ return Path.Combine(ServerRootDir, "bin");
+ }
+ }
+
+ /// <summary>
+ /// The server tier root directory
+ /// </summary>
+ public virtual string ServerRootDir
+ {
+ get { return Path.Combine(BuildOutputPath, "Server"); }
+ }
+
+ /// <summary>
+ /// The CS-Map Dictionary directory
+ /// </summary>
+ public virtual string CsMapDictionaryDir
+ {
+ get { return Path.Combine(BuildOutputPath, "CS-Map\\Dictionaries"); }
+ }
+
+ /// <summary>
+ /// The www directory of the web tier
+ /// </summary>
+ public virtual string WebTierPublicDir
+ {
+ get { return Path.Combine(WebTierRootDir, "www"); }
+ }
+
+ /// <summary>
+ /// The web tier root directory
+ /// </summary>
+ public virtual string WebTierRootDir
+ {
+ get
+ {
+ return Path.Combine(BuildOutputPath, "Web");
+ }
+ }
+
+ /// <summary>
+ /// The mapagent directory of the web tier
+ /// </summary>
+ public virtual string WebTierMapAgentDir
+ {
+ get { return Path.Combine(WebTierPublicDir, "mapagent"); }
+ }
+
+ /// <summary>
+ /// The PHP web tier directory
+ /// </summary>
+ public virtual string WebTierPhpDir
+ {
+ get
+ {
+ return Path.Combine(WebTierRootDir, "Php");
+ }
+ }
+
+ public bool EnablePhp { get; set; }
+
+ /// <summary>
+ /// The name of the mapguide virtual directory to create
+ /// </summary>
+ public string VirtualDirectoryName { get; set; }
+
+ /// <summary>
+ /// TCP/IP number for client operations
+ /// </summary>
+ public int ServerClientPort { get; set; }
+
+ /// <summary>
+ /// TCP/IP number for admin operations
+ /// </summary>
+ public int ServerAdminPort { get; set; }
+
+ /// <summary>
+ /// TCP/IP number for port operations
+ /// </summary>
+ public int ServerSitePort { get; set; }
+
+ private IniFile _serverConfig;
+ private IniFile _webConfig;
+ private IniFile _phpConfig;
+
+ public void Execute()
+ {
+ ValidateConfigSettings();
+
+ if (this.BackupConfigFiles)
+ {
+ if (string.IsNullOrEmpty(this.BackupConfigPath))
+ throw new InvalidOperationException("Please specify a backup path for config files");
+ else
+ {
+ if (!Directory.Exists(this.BackupConfigPath))
+ Directory.CreateDirectory(this.BackupConfigPath);
+
+ DoBackupConfigFiles();
+ }
+ }
+
+ //Process serverconfig.ini
+
+ string serverConfigIni = Path.Combine(this.ServerBinDir, "serverconfig.ini");
+ if (!File.Exists(serverConfigIni))
+ throw new InvalidOperationException("Could not find expected file: " + serverConfigIni);
+
+ string webConfigIni = Path.Combine(this.WebTierPublicDir, "webconfig.ini");
+ if (!File.Exists(webConfigIni))
+ throw new InvalidOperationException("Could not find expected file: " + webConfigIni);
+
+ string phpIni = Path.Combine(this.WebTierPhpDir, "php.ini");
+ if (!File.Exists(phpIni))
+ throw new InvalidOperationException("Could not find expected file: " + phpIni);
+
+ _serverConfig = new IniFile(serverConfigIni);
+ _webConfig = new IniFile(webConfigIni);
+ _phpConfig = new IniFile(phpIni);
+
+ SetServerConfigProperties();
+ SetWebConfigProperties();
+ SetPhpConfigProperties();
+
+ ConfigureWebServer();
+
+ if (this.InstallServices)
+ {
+ throw new NotImplementedException("Service installation not implemented");
+ }
+ else
+ {
+ //Write server batch file
+ string serverText = string.Format(Properties.Resources.SERVER, this.CsMapDictionaryDir, this.ServerBinDir);
+ File.WriteAllText(Path.Combine(this.BatchFileOutputDirectory, "mgserver.bat"), serverText);
+
+ WriteAdditionalBatchFiles();
+ }
+ }
+
+ protected abstract void WriteAdditionalBatchFiles();
+
+ protected abstract void ValidateConfigSettings();
+
+ protected abstract void ConfigureWebServer();
+
+ private void SetPhpConfigProperties()
+ {
+ _phpConfig.IniWriteValue("PHP", "extension_dir", Path.Combine(this.WebTierPhpDir, "ext"));
+ }
+
+ private void SetWebConfigProperties()
+ {
+ //Port numbers
+ _webConfig.IniWriteValue("AdministrativeConnectionProperties","Port",this.ServerAdminPort.ToString(CultureInfo.InvariantCulture));
+ _webConfig.IniWriteValue("ClientConnectionProperties","Port",this.ServerClientPort.ToString(CultureInfo.InvariantCulture));
+ _webConfig.IniWriteValue("SiteConnectionProperties","Port",this.ServerSitePort.ToString(CultureInfo.InvariantCulture));
+
+ _webConfig.IniWriteValue("GeneralProperties","ResourcesPath",Path.Combine(this.WebTierMapAgentDir, "Resources"));
+ _webConfig.IniWriteValue("GeneralProperties","TempPath",Path.Combine(this.WebTierRootDir, "Logs"));
+
+ _webConfig.IniWriteValue("SiteConnectionProperties","IpAddress","127.0.0.1");
+
+ _webConfig.IniWriteValue("WebApplicationProperties","TemplateRootFolder",Path.Combine(this.WebTierRootDir, "fusion\\templates\\mapguide"));
+ _webConfig.IniWriteValue("WebApplicationProperties","WidgetInfoFolder",Path.Combine(this.WebTierRootDir, "fusion\\widgets\\widgetinfo"));
+ _webConfig.IniWriteValue("WebApplicationProperties", "ContainerInfoFolder", Path.Combine(this.WebTierRootDir, "fusion\\containerinfo"));
+ }
+
+ private void SetServerConfigProperties()
+ {
+ //Port numbers
+ _serverConfig.IniWriteValue("AdministrativeConnectionProperties","Port",this.ServerAdminPort.ToString(CultureInfo.InvariantCulture));
+ _serverConfig.IniWriteValue("ClientConnectionProperties","Port",this.ServerClientPort.ToString(CultureInfo.InvariantCulture));
+ _serverConfig.IniWriteValue("SiteConnectionProperties","Port",this.ServerSitePort.ToString(CultureInfo.InvariantCulture));
+
+ _serverConfig.IniWriteValue("GeneralProperties","LogsPath",Path.Combine(ServerRootDir, "Logs"));
+
+ _serverConfig.IniWriteValue("GeneralProperties","TempPath",Path.Combine(ServerRootDir, "Temp"));
+ _serverConfig.IniWriteValue("GeneralProperties","ResourcesPath",Path.Combine(ServerRootDir, "Resources"));
+ _serverConfig.IniWriteValue("GeneralProperties","WfsDocumentPath",Path.Combine(ServerRootDir, "Wfs"));
+ _serverConfig.IniWriteValue("GeneralProperties","WmsDocumentPath",Path.Combine(ServerRootDir, "Wms"));
+ _serverConfig.IniWriteValue("GeneralProperties","FdoPath",Path.Combine(ServerRootDir, "Fdo"));
+
+ _serverConfig.IniWriteValue("ResourceServiceProperties","PackagesPath",Path.Combine(ServerRootDir, "Packages"));
+
+ _serverConfig.IniWriteValue("ResourceServiceProperties","LibraryRepositoryPath",Path.Combine(ServerRootDir, "Repositories\\Library"));
+ _serverConfig.IniWriteValue("ResourceServiceProperties","LibraryResourcesDataFilePath",Path.Combine(ServerRootDir, "Repositories\\DataFiles"));
+ _serverConfig.IniWriteValue("ResourceServiceProperties","SessionRepositoryPath",Path.Combine(ServerRootDir, "Repositories\\Session"));
+ _serverConfig.IniWriteValue("ResourceServiceProperties","SessionResourceDataPath",Path.Combine(ServerRootDir, "Repositories\\Session\\DataFiles"));
+ _serverConfig.IniWriteValue("ResourceServiceProperties","SiteRepositoryPath",Path.Combine(ServerRootDir, "Repositories\\Site"));
+ _serverConfig.IniWriteValue("ResourceServiceProperties","TileCachePath",Path.Combine(ServerRootDir, "Repositories\\TileCache"));
+ _serverConfig.IniWriteValue("ResourceServiceProperties", "ResourceSchemaFilePath", Path.Combine(ServerRootDir, "Schema"));
+ }
+
+ protected abstract void DoBackupConfigFiles();
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup.Core/ApacheSetupConfigurationProcess.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup.Core/ApacheSetupConfigurationProcess.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup.Core/ApacheSetupConfigurationProcess.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,124 @@
+#region Disclaimer / License
+// Copyright (C) 2011, Jackie Ng, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+using System.Globalization;
+
+namespace InstantSetup.Core
+{
+ public class ApacheSetupConfigurationProcess : AbstractSetupConfigurationProcess
+ {
+ public ApacheSetupConfigurationProcess()
+ : base()
+ {
+ this.HttpdServiceName = "ApacheMapGuideTrunk";
+ this.ApachePortNumber = 8018;
+ this.TomcatPortNumber = 8019;
+
+ this.VirtualDirectoryName = "mapguide";
+ this.HttpdServiceName = "ApacheMapGuide";
+ }
+
+ public bool EnableJava { get; set; }
+
+ /// <summary>
+ /// The port number that Apache Tomcat will run under. Only applies if
+ /// java is enabled and is required if EnableJava = true
+ /// </summary>
+ public int TomcatPortNumber { get; set; }
+
+ public int ApachePortNumber { get; set; }
+
+ public string HttpdServiceName { get; set; }
+
+ public virtual string WebTierApacheDir
+ {
+ get
+ {
+ return Path.Combine(this.WebTierRootDir, "Apache2");
+ }
+ }
+
+ protected override void ValidateConfigSettings()
+ {
+
+ }
+
+ private static string Apachify(string text)
+ {
+ string str = text.Replace("\\", "/");
+ return str.EndsWith("/") ? str : (str + "/");
+ }
+
+ protected override void ConfigureWebServer()
+ {
+ var httpdConf = Path.Combine(this.WebTierApacheDir, "conf\\httpd.conf");
+ var backup = httpdConf + ".instantsetupbak";
+ if (!File.Exists(backup))
+ File.Copy(httpdConf, backup); //This has to be original, so back it up
+ else
+ File.Copy(backup, httpdConf, true); //Restore from original backup
+
+ var httpdBuffer = new StringBuilder(File.ReadAllText(httpdConf));
+
+ httpdBuffer.Replace("%MG_WEB_ROOT%", Apachify(this.WebTierPublicDir));
+ httpdBuffer.Replace("%MG_WEB_PORT%", this.ApachePortNumber.ToString(CultureInfo.InvariantCulture));
+ httpdBuffer.Replace("%MG_WEB_PHP%", Apachify(this.WebTierPhpDir));
+ httpdBuffer.Replace("%MG_WEB_APACHE%", Apachify(this.WebTierApacheDir));
+ httpdBuffer.Replace("%MG_VIRTUAL_DIR%", this.VirtualDirectoryName);
+
+ if (this.EnableJava)
+ {
+ httpdBuffer.Replace("%MG_INCLUDE_TOMCAT%", "Include conf/tomcat.conf");
+ httpdBuffer.Replace("%MG_PHP_API%", "#");
+ httpdBuffer.Replace("%MG_JAVA_API%", "");
+
+ var tomcatConf = Path.Combine(this.WebTierApacheDir, "conf\\tomcat.conf");
+ var tomcatBuffer = new StringBuilder(File.ReadAllText(tomcatConf));
+
+ tomcatBuffer.Replace("%MG_WEB_APACHE%", Apachify(this.WebTierApacheDir));
+ tomcatBuffer.Replace("%MG_VIRTUAL_DIR%", this.VirtualDirectoryName);
+
+ File.WriteAllText(tomcatConf, tomcatBuffer.ToString());
+ }
+ else
+ {
+ httpdBuffer.Replace("%MG_INCLUDE_TOMCAT%", "#Uncomment to enable the Java API\n#Include conf/tomcat.conf");
+ httpdBuffer.Replace("%MG_PHP_API%", "");
+ httpdBuffer.Replace("%MG_JAVA_API%", "#");
+ }
+
+ File.WriteAllText(httpdConf, httpdBuffer.ToString());
+ }
+
+ protected override void DoBackupConfigFiles()
+ {
+
+ }
+
+ protected override void WriteAdditionalBatchFiles()
+ {
+ //Write httpd batch file
+ string httpdText = string.Format(Properties.Resources.APACHE_WEB, Path.Combine(this.WebTierApacheDir, "bin"));
+ File.WriteAllText(Path.Combine(this.BatchFileOutputDirectory, "mgwebtier.bat"), httpdText);
+ }
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup.Core/IISSetupConfigurationProcess.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup.Core/IISSetupConfigurationProcess.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup.Core/IISSetupConfigurationProcess.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,55 @@
+#region Disclaimer / License
+// Copyright (C) 2011, Jackie Ng, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace InstantSetup.Core
+{
+ public class IISSetupConfigurationProcess : AbstractSetupConfigurationProcess
+ {
+ public bool EnableDotNet { get; set; }
+
+ /// <summary>
+ /// Gets whether we are using IIS7 or above. Meaning we can use appcmd.exe
+ /// Otherwise we will use the IIS Admin COM interfaces
+ /// </summary>
+ public bool UsingIIS7 { get; set; }
+
+ protected override void DoBackupConfigFiles()
+ {
+ throw new NotImplementedException();
+ }
+
+ protected override void ValidateConfigSettings()
+ {
+ throw new NotImplementedException();
+ }
+
+ protected override void ConfigureWebServer()
+ {
+ throw new NotImplementedException();
+ }
+
+ protected override void WriteAdditionalBatchFiles()
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup.Core/IniFile.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup.Core/IniFile.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup.Core/IniFile.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,96 @@
+#region Disclaimer / License
+// Copyright (C) 2011, Jackie Ng, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Runtime.InteropServices;
+
+namespace InstantSetup.Core
+{
+ public class IniFile
+ {
+ public string path;
+
+ [DllImport("kernel32")]
+ private static extern long WritePrivateProfileString(string section,
+ string key, string val, string filePath);
+ [DllImport("kernel32")]
+ private static extern int GetPrivateProfileString(string section,
+ string key, string def, StringBuilder retVal,
+ int size, string filePath);
+
+ /// <summary>
+
+ /// INIFile Constructor.
+
+ /// </summary>
+
+ /// <PARAM name="INIPath"></PARAM>
+
+ public IniFile(string INIPath)
+ {
+ path = INIPath;
+ }
+ /// <summary>
+
+ /// Write Data to the INI File
+
+ /// </summary>
+
+ /// <PARAM name="Section"></PARAM>
+
+ /// Section name
+
+ /// <PARAM name="Key"></PARAM>
+
+ /// Key Name
+
+ /// <PARAM name="Value"></PARAM>
+
+ /// Value Name
+
+ public void IniWriteValue(string Section, string Key, string Value)
+ {
+ WritePrivateProfileString(Section, Key, Value, this.path);
+ }
+
+ /// <summary>
+
+ /// Read Data Value From the Ini File
+
+ /// </summary>
+
+ /// <PARAM name="Section"></PARAM>
+
+ /// <PARAM name="Key"></PARAM>
+
+ /// <PARAM name="Path"></PARAM>
+
+ /// <returns></returns>
+
+ public string IniReadValue(string Section, string Key)
+ {
+ StringBuilder temp = new StringBuilder(255);
+ int i = GetPrivateProfileString(Section, Key, "", temp,
+ 255, this.path);
+ return temp.ToString();
+
+ }
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup.Core/InstantSetup.Core.csproj
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup.Core/InstantSetup.Core.csproj (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup.Core/InstantSetup.Core.csproj 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{70F74850-DC74-431E-993D-8200E13B026A}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>InstantSetup.Core</RootNamespace>
+ <AssemblyName>InstantSetup.Core</AssemblyName>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <TargetFrameworkSubset>
+ </TargetFrameworkSubset>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="AbstractSetupConfigurationProcess.cs" />
+ <Compile Include="ApacheSetupConfigurationProcess.cs" />
+ <Compile Include="IISSetupConfigurationProcess.cs" />
+ <Compile Include="IniFile.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Resources\SERVER.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="app.config" />
+ <None Include="Resources\APACHE_WEB.txt" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
Added: trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/AssemblyInfo.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/AssemblyInfo.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/AssemblyInfo.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("InstantSetup.Core")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("InstantSetup.Core")]
+[assembly: AssemblyCopyright("Copyright © 2011")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("845718ec-d69f-4bb2-8fbe-c8f0407bc1d6")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Added: trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/Resources.Designer.cs
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/Resources.Designer.cs (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/Resources.Designer.cs 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,81 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.4952
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace InstantSetup.Core.Properties {
+ using System;
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("InstantSetup.Core.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to .
+ /// </summary>
+ internal static string APACHE_WEB {
+ get {
+ return ResourceManager.GetString("APACHE_WEB", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to .
+ /// </summary>
+ internal static string SERVER {
+ get {
+ return ResourceManager.GetString("SERVER", resourceCulture);
+ }
+ }
+ }
+}
Added: trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/Resources.resx
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/Resources.resx (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup.Core/Properties/Resources.resx 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="APACHE_WEB" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\APACHE_WEB.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+ </data>
+ <data name="SERVER" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\SERVER.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+ </data>
+</root>
\ No newline at end of file
Added: trunk/Tools/MgInstantSetup/InstantSetup.Core/Resources/APACHE_WEB.txt
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup.Core/Resources/APACHE_WEB.txt (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup.Core/Resources/APACHE_WEB.txt 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,3 @@
+pushd {0}
+httpd.exe
+popd
\ No newline at end of file
Added: trunk/Tools/MgInstantSetup/InstantSetup.Core/Resources/SERVER.txt
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup.Core/Resources/SERVER.txt (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup.Core/Resources/SERVER.txt 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,4 @@
+SET MENTOR_DICTIONARY_PATH={0}
+pushd {1}
+mgserver.exe run
+popd
\ No newline at end of file
Added: trunk/Tools/MgInstantSetup/InstantSetup.Core/app.config
===================================================================
--- trunk/Tools/MgInstantSetup/InstantSetup.Core/app.config (rev 0)
+++ trunk/Tools/MgInstantSetup/InstantSetup.Core/app.config 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<configuration>
+<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
Added: trunk/Tools/MgInstantSetup/MgInstantSetup.sln
===================================================================
--- trunk/Tools/MgInstantSetup/MgInstantSetup.sln (rev 0)
+++ trunk/Tools/MgInstantSetup/MgInstantSetup.sln 2011-05-30 13:51:56 UTC (rev 5872)
@@ -0,0 +1,26 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantSetup.Core", "InstantSetup.Core\InstantSetup.Core.csproj", "{70F74850-DC74-431E-993D-8200E13B026A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantSetup", "InstantSetup\InstantSetup.csproj", "{72CDEB87-1ED2-4177-8C00-962E79F36CA6}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {70F74850-DC74-431E-993D-8200E13B026A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {70F74850-DC74-431E-993D-8200E13B026A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {70F74850-DC74-431E-993D-8200E13B026A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {70F74850-DC74-431E-993D-8200E13B026A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {72CDEB87-1ED2-4177-8C00-962E79F36CA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {72CDEB87-1ED2-4177-8C00-962E79F36CA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {72CDEB87-1ED2-4177-8C00-962E79F36CA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {72CDEB87-1ED2-4177-8C00-962E79F36CA6}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
Added: trunk/Tools/MgInstantSetup/MgInstantSetup.suo
===================================================================
(Binary files differ)
Property changes on: trunk/Tools/MgInstantSetup/MgInstantSetup.suo
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
More information about the mapguide-commits
mailing list