csmail-patches Mailing List for CS Mail API (Page 6)
Status: Pre-Alpha
Brought to you by:
mastergaurav
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(36) |
Aug
(25) |
Sep
(49) |
Oct
(28) |
Nov
(2) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(2) |
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2004 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Gaurav V. <mas...@us...> - 2002-07-24 10:50:21
|
Update of /cvsroot/csmail/csmail/nunit/src/NUnitConsole In directory usw-pr-cvs1:/tmp/cvs-serv27574/nunit/src/NUnitConsole Added Files: AssemblyInfo.cs NUnitConsole.csproj NUnitConsole.xml NUnitConsoleMain.cs TestRunner.cs Log Message: 2002-02-24 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * NUnit -- Added the sourcecode. I hope there's no problem with license. --- NEW FILE --- using System; using System.Reflection; using System.Runtime.CompilerServices; // Mark the framework assembly as CLS compliant [assembly:CLSCompliant(true)] // // 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("NUnit Testing Framework")] [assembly:AssemblyDescription("A unit testing framework for the .Net platform, ported from junit by Kent Beck and Erich Gamma.")] [assembly:AssemblyConfiguration("")] [assembly:AssemblyCompany("")] [assembly:AssemblyProduct("NUnit")] [assembly:AssemblyCopyright("")] [assembly:AssemblyTrademark("")] [assembly:AssemblyCulture("")] // // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Revision // Build Number // // You can specify all the value or you can default the Revision and Build Numbers // by using the '*' as shown below: [assembly:AssemblyVersion("1.11.*")] // // In order to sign your assembly you must specify a key to use. Refer to the // Microsoft .NET Framework documentation for more information on assembly signing. // // Use the attributes below to control which key is used for signing. // // Notes: // (*) If no key is specified - the assembly cannot be signed. // (*) KeyName refers to a key that has been installed in the Crypto Service // Provider (CSP) on your machine. // (*) If the key file and a key name attributes are both specified, the // following processing occurs: // (1) If the KeyName can be found in the CSP - that key is used. // (2) If the KeyName does not exist and the KeyFile does exist, the key // in the file is installed into the CSP and used. // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework // documentation for more information on this. // //[assembly: AssemblyDelaySign(false)] //[assembly: AssemblyKeyFile(@"..\..\..\..\NUnit.key")] //[assembly: AssemblyKeyName("")] --- NEW FILE --- <VisualStudioProject> <CSHARP ProjectType = "Local" ProductVersion = "7.0.9254" SchemaVersion = "1.0" > <Build> <Settings ApplicationIcon = "Logo.ico" AssemblyKeyContainerName = "" AssemblyName = "NUnitConsole" AssemblyOriginatorKeyFile = "" DefaultClientScript = "JScript" DefaultHTMLPageLayout = "Flow" DefaultTargetSchema = "IE32Nav30" DelaySign = "false" NoStandardLibraries = "false" OutputType = "Exe" RootNamespace = "NUnitConsole" StartupObject = "" > <Config Name = "Debug" AllowUnsafeBlocks = "false" BaseAddress = "0" CheckForOverflowUnderflow = "false" ConfigurationOverrideFile = "" DefineConstants = "DEBUG;TRACE" DocumentationFile = "NUnitConsole.xml" DebugSymbols = "true" FileAlignment = "4096" IncrementalBuild = "false" Optimize = "false" OutputPath = "bin\Debug\" RegisterForComInterop = "false" RemoveIntegerChecks = "false" TreatWarningsAsErrors = "false" WarningLevel = "4" /> <Config Name = "Release" AllowUnsafeBlocks = "false" BaseAddress = "0" CheckForOverflowUnderflow = "false" ConfigurationOverrideFile = "" DefineConstants = "TRACE" DocumentationFile = "" DebugSymbols = "false" FileAlignment = "4096" IncrementalBuild = "false" Optimize = "true" OutputPath = "bin\Release\" RegisterForComInterop = "false" RemoveIntegerChecks = "false" TreatWarningsAsErrors = "false" WarningLevel = "4" /> </Settings> <References> <Reference Name = "NUnitCore" Project = "{434945C6-B4F0-416B-AC43-2631EA091AAA}" Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}" Private = "True" /> <Reference Name = "System" AssemblyName = "System" /> </References> </Build> <Files> <Include> <File RelPath = "AssemblyInfo.cs" SubType = "Code" BuildAction = "Compile" /> <File RelPath = "NUnitConsoleMain.cs" SubType = "Code" BuildAction = "Compile" /> <File RelPath = "TestRunner.cs" SubType = "Code" BuildAction = "Compile" /> </Include> </Files> </CSHARP> </VisualStudioProject> --- NEW FILE --- <?xml version="1.0"?> <doc> <assembly> <name>NUnitConsole</name> </assembly> <members> <member name="T:NUnit.Top"> <summary> </summary> </member> <member name="M:NUnit.Top.Main(System.String[])"> <summary> </summary> <param name="args"></param> </member> <member name="T:NUnit.TextUI.TestRunner"> <summary>A command line based tool to run tests.</summary><remarks> <code> C:\NUnitConsole.exe /t [/wait] TestCaseClass </code> TestRunner expects the name of a TestCase class as argument. If this class defines a static <c>Suite</c> property it will be invoked and the returned test is run. Otherwise all the methods starting with "Test" having no arguments are run. When the wait command line argument is given TestRunner waits until the users types RETURN. TestRunner prints a trace as the tests are executed followed by a summary at the end.</remarks> </member> <member name="M:NUnit.TextUI.TestRunner.#ctor"> <summary> Constructs a TestRunner. </summary> </member> <member name="M:NUnit.TextUI.TestRunner.#ctor(System.IO.TextWriter)"> <summary> Constructs a TestRunner using the given stream for all the output </summary> </member> <member name="M:NUnit.TextUI.TestRunner.AddError(NUnit.Framework.ITest,System.Exception)"> <summary> </summary> <param name="test"></param> <param name="t"></param> </member> <member name="M:NUnit.TextUI.TestRunner.AddFailure(NUnit.Framework.ITest,NUnit.Framework.AssertionFailedError)"> <summary> </summary> <param name="test"></param> <param name="t"></param> </member> <member name="M:NUnit.TextUI.TestRunner.CreateTestResult"> <summary>Creates the TestResult to be used for the test run.</summary> </member> <member name="M:NUnit.TextUI.TestRunner.DoRun(NUnit.Framework.ITest,System.Boolean)"> <summary> </summary> <param name="suite"></param> <param name="wait"></param> <returns></returns> </member> <member name="M:NUnit.TextUI.TestRunner.EndTest(NUnit.Framework.ITest)"> <summary> </summary> <param name="test"></param> </member> <member name="M:NUnit.TextUI.TestRunner.GetLoader"> <summary> </summary> <returns></returns> </member> <member name="M:NUnit.TextUI.TestRunner.Print(NUnit.Framework.TestResult)"> <summary> </summary> <param name="result"></param> </member> <member name="M:NUnit.TextUI.TestRunner.PrintErrors(NUnit.Framework.TestResult)"> <summary>Prints the errors to the standard output.</summary> </member> <member name="M:NUnit.TextUI.TestRunner.PrintFailures(NUnit.Framework.TestResult)"> <summary>Prints failures to the standard output.</summary> </member> <member name="M:NUnit.TextUI.TestRunner.PrintHeader(NUnit.Framework.TestResult)"> <summary>Prints the header of the report.</summary> </member> <member name="M:NUnit.TextUI.TestRunner.Run(System.Type)"> <summary>Runs a Suite extracted from a TestCase subclass.</summary> </member> <member name="M:NUnit.TextUI.TestRunner.Run(NUnit.Framework.ITest)"> <summary> </summary> <param name="suite"></param> </member> <member name="M:NUnit.TextUI.TestRunner.RunAndWait(NUnit.Framework.ITest)"> <summary>Runs a single test and waits until the user types RETURN.</summary> </member> <member name="M:NUnit.TextUI.TestRunner.RunFailed(System.String)"> <summary> </summary> <param name="message"></param> </member> <member name="M:NUnit.TextUI.TestRunner.Start(System.String[])"> <summary>Starts a test run. Analyzes the command line arguments and runs the given test suite.</summary> </member> <member name="M:NUnit.TextUI.TestRunner.StartTest(NUnit.Framework.ITest)"> <summary> </summary> <param name="test"></param> </member> <member name="P:NUnit.TextUI.TestRunner.Writer"> <summary> </summary> </member> <member name="M:System.Collections.Hashtable.Synchronized(System.Collections.Hashtable)"> <summary> Returns a synchronized (thread-safe) wrapper for the Hashtable. </summary> </member> <member name="M:System.Collections.Hashtable.GetHash(System.Object)"> <summary>Returns the hash code for the specified key.</summary> </member> <member name="M:System.Collections.Hashtable.KeyEquals(System.Object,System.Object)"> <summary> Compares a specific Object with a specific key in the Hashtable. </summary> </member> </members> </doc> --- NEW FILE --- namespace NUnit { using System; using System.Collections; using NUnit.Framework; using NUnit.Runner; using NUnit.TextUI; /// <summary> /// /// </summary> public class Top { /// <summary> /// /// </summary> /// <param name="args"></param> public static void Main(string[] args) { TestRunner aTestRunner = new NUnit.TextUI.TestRunner(); try { TestResult r = aTestRunner.Start(args); if (!r.WasSuccessful) Environment.Exit(1); Environment.Exit(0); } catch(Exception e) { Console.Error.WriteLine(e.Message); Environment.Exit(2); } } } } --- NEW FILE --- namespace NUnit.TextUI { using System; using System.IO; using System.Reflection; using NUnit.Framework; using NUnit.Runner; /// <summary>A command line based tool to run tests.</summary><remarks> /// <code> /// C:\NUnitConsole.exe /t [/wait] TestCaseClass /// </code> /// TestRunner expects the name of a TestCase class as argument. /// If this class defines a static <c>Suite</c> property it /// will be invoked and the returned test is run. Otherwise all /// the methods starting with "Test" having no arguments are run. /// /// When the wait command line argument is given TestRunner /// waits until the users types RETURN. /// /// TestRunner prints a trace as the tests are executed followed by a /// summary at the end.</remarks> public class TestRunner : BaseTestRunner { int fColumn = 0; TextWriter fWriter = Console.Out; /// <summary> /// Constructs a TestRunner. /// </summary> public TestRunner() {} /// <summary> /// Constructs a TestRunner using the given stream for all the output /// </summary> public TestRunner(TextWriter writer) : this() { if (writer != null) { fWriter= writer; } else { throw new ArgumentNullException("writer"); } } /// <summary> /// /// </summary> /// <param name="test"></param> /// <param name="t"></param> public override void AddError(ITest test, Exception t) { lock(this) this.Writer.Write("E"); } /// <summary> /// /// </summary> /// <param name="test"></param> /// <param name="t"></param> public override void AddFailure(ITest test, AssertionFailedError t) { lock (this) this.Writer.Write("F"); } /// <summary>Creates the TestResult to be used for the test run.</summary> protected TestResult CreateTestResult() { return new TestResult(); } /// <summary> /// /// </summary> /// <param name="suite"></param> /// <param name="wait"></param> /// <returns></returns> protected TestResult DoRun(ITest suite, bool wait) { TestResult result= CreateTestResult(); result.AddListener(this); long startTime= System.DateTime.Now.Ticks; suite.Run(result); long endTime= System.DateTime.Now.Ticks; long runTime= (endTime-startTime) / 10000; Writer.WriteLine(); Writer.WriteLine("Time: "+ElapsedTimeAsString(runTime)); Print(result); Writer.WriteLine(); if (wait) { Writer.WriteLine("<RETURN> to continue"); try { Console.ReadLine(); } catch(Exception) { } } return result; } /// <summary> /// /// </summary> /// <param name="test"></param> public override void EndTest(ITest test) { } /// <summary> /// /// </summary> /// <returns></returns> public override ITestLoader GetLoader() { return new StandardLoader(); } /// <summary> /// /// </summary> /// <param name="result"></param> public void Print(TestResult result) { lock(this) { PrintErrors(result); PrintFailures(result); PrintHeader(result); } } /// <summary>Prints the errors to the standard output.</summary> public void PrintErrors(TestResult result) { if (result.ErrorCount != 0) { if (result.ErrorCount == 1) Writer.WriteLine("There was "+result.ErrorCount+" error:"); else Writer.WriteLine("There were "+result.ErrorCount+" errors:"); int i= 1; foreach (TestFailure failure in result.Errors) { Writer.WriteLine(i++ + ") "+failure+"("+failure.ThrownException.GetType().ToString()+")"); Writer.Write(GetFilteredTrace(failure.ThrownException)); } } } /// <summary>Prints failures to the standard output.</summary> public void PrintFailures(TestResult result) { if (result.FailureCount != 0) { if (result.FailureCount == 1) Writer.WriteLine("There was " + result.FailureCount + " failure:"); else Writer.WriteLine("There were " + result.FailureCount + " failures:"); int i = 1; foreach (TestFailure failure in result.Failures) { Writer.Write(i++ + ") " + failure.FailedTest); Exception t= failure.ThrownException; if (t.Message != "") Writer.WriteLine(" \"" + Truncate(t.Message) + "\""); else { Writer.WriteLine(); Writer.Write(GetFilteredTrace(failure.ThrownException)); } } } } /// <summary>Prints the header of the report.</summary> public void PrintHeader(TestResult result) { if (result.WasSuccessful) { Writer.WriteLine(); Writer.Write("OK"); Writer.WriteLine (" (" + result.RunCount + " tests)"); } else { Writer.WriteLine(); Writer.WriteLine("FAILURES!!!"); Writer.WriteLine("Tests Run: "+result.RunCount+ ", Failures: "+result.FailureCount+ ", Errors: "+result.ErrorCount); } } /// <summary>Runs a Suite extracted from a TestCase subclass.</summary> static public void Run(Type testClass) { Run(new TestSuite(testClass)); } /// <summary> /// /// </summary> /// <param name="suite"></param> static public void Run(ITest suite) { TestRunner aTestRunner= new TestRunner(); aTestRunner.DoRun(suite, false); } /// <summary>Runs a single test and waits until the user /// types RETURN.</summary> static public void RunAndWait(ITest suite) { TestRunner aTestRunner= new TestRunner(); aTestRunner.DoRun(suite, true); } /// <summary> /// /// </summary> /// <param name="message"></param> protected override void RunFailed(string message) { Console.Error.WriteLine(message); Environment.ExitCode = 1; throw new ApplicationException(message); } /// <summary>Starts a test run. Analyzes the command line arguments /// and runs the given test suite.</summary> public TestResult Start(string[] args) { bool wait = false; string testCase = ProcessArguments(args, ref wait); if (testCase.Equals("")) throw new ApplicationException("Usage: NUnitConsole.exe [/wait] testCaseName, where\n" + "name is the name of the TestCase class"); try { ITest suite = GetTest(testCase); return DoRun(suite, wait); } catch (Exception e) { throw new ApplicationException("Could not create and run test suite.", e); } } /// <summary> /// /// </summary> /// <param name="test"></param> public override void StartTest(ITest test) { lock (this) { Writer.Write("."); if (fColumn++ >= 40) { Writer.WriteLine(); fColumn = 0; } } } /// <summary> /// /// </summary> protected TextWriter Writer { get { return fWriter; } } } } |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:50:20
|
Update of /cvsroot/csmail/csmail/nunit In directory usw-pr-cvs1:/tmp/cvs-serv27574/nunit Added Files: ChangeLog RunTests.cs makefile nunit.build Log Message: 2002-02-24 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * NUnit -- Added the sourcecode. I hope there's no problem with license. --- NEW FILE --- 2002-03-08 Nick Drochak <ndr...@go...> * nunit.build: exclude all the obsolete stuff, and prevent csc from linking any ms stuff to the dll and exe we are testing on Linux. 2002-03-07 Nick Drochak <ndr...@go...> * .cvsignore: ignore *.pdb files * nunit.build: Build a version of NUnitCore.dll and NUnitConsole.exe using mono's corlib. Use this to test on Linux under mint and mono. 2002-03-06 Nick Drochak <ndr...@go...> * nunit.build: Exclude obsolete class from build. Probably should remove from cvs. 2002-02-27 Martin Baulig <ma...@gn...> Imported NUnit 1.11. * nunit.build: Added NAnt build file for NUnit. In addition to NUnitConsole.exe and NUnitCore.dll, we also create a small NUnitBase.dll which just contains the source files which are needed to run the tests on Linux. * RunTests.cs: This is a simple test runner which is used when we run the tests on Linux. It is linked into UNitBase.dll. * makefile: Just call NAnt here. * NUnitGUI.exe, NUnitTests.dll: Removed binaries. --- NEW FILE --- using System; using System.IO; using System.Threading; using System.Globalization; using NUnit.Framework; namespace MonoTests { public class MyTestRunner { static TextWriter fWriter = Console.Out; protected static TextWriter Writer { get { return fWriter; } } public static void Print(TestResult result) { PrintErrors(result); PrintFailures(result); PrintHeader(result); } /// <summary>Prints the errors to the standard output.</summary> public static void PrintErrors(TestResult result) { if (result.ErrorCount != 0) { if (result.ErrorCount == 1) Writer.WriteLine("There was "+result.ErrorCount+" error:"); else Writer.WriteLine("There were "+result.ErrorCount+" errors:"); int i= 1; foreach (TestFailure failure in result.Errors) { Writer.WriteLine(i++ + ") "+failure+"("+failure.ThrownException.GetType().ToString()+")"); Writer.Write(failure.ThrownException); } } } /// <summary>Prints failures to the standard output.</summary> public static void PrintFailures(TestResult result) { if (result.FailureCount != 0) { if (result.FailureCount == 1) Writer.WriteLine("There was " + result.FailureCount + " failure:"); else Writer.WriteLine("There were " + result.FailureCount + " failures:"); int i = 1; foreach (TestFailure failure in result.Failures) { Writer.Write(i++ + ") " + failure.FailedTest); Exception t= failure.ThrownException; if (t.Message != "") Writer.WriteLine(" \"" + t.Message + "\""); else { Writer.WriteLine(); Writer.Write(failure.ThrownException); } } } } /// <summary>Prints the header of the report.</summary> public static void PrintHeader(TestResult result) { if (result.WasSuccessful) { Writer.WriteLine(); Writer.Write("OK"); Writer.WriteLine (" (" + result.RunCount + " tests)"); } else { Writer.WriteLine(); Writer.WriteLine("FAILURES!!!"); Writer.WriteLine("Tests Run: "+result.RunCount+ ", Failures: "+result.FailureCount+ ", Errors: "+result.ErrorCount); } } } } --- NEW FILE --- all: build linux: build windows: build build: ../nant/NAnt.exe build clean: ../nant/NAnt.exe clean --- NEW FILE --- <?xml version="1.0" encoding="iso-8859-1"?> <!-- NAnt build file for NUnit --> <project name="NUnit" default="build"> <property name="debug" value="true"/> <target name="build"> <csc target="library" output="NUnitCore.dll" debug="${debug}"> <sources basedir="src/NUnitCore"> <includes name="*.cs"/> <excludes name="SimpleTestCollector.cs"/> <excludes name="ClassPathTestCollector.cs"/> <excludes name="ReflectionUtils.cs"/> <excludes name="ITestSuiteLoader.cs"/> <excludes name="LoadingTestCollector.cs"/> <excludes name="ReloadingTestSuiteLoader.cs"/> <excludes name="StandardTestSuiteLoader.cs"/> <excludes name="TestCaseClassLoader.cs"/> </sources> </csc> <csc target="library" output="NUnitBase.dll" debug="${debug}"> <sources> <includes name="src/NUnitCore/*.cs"/> <includes name="RunTests.cs"/> <excludes name="src/NUnitCore/IFailureDetailView.cs"/> <excludes name="src/NUnitCore/SimpleTestCollector.cs"/> </sources> </csc> <csc target="exe" output="NUnitConsole.exe" debug="${debug}"> <sources basedir="src\NUnitConsole"> <includes name="*.cs"/> </sources> <references> <includes name="NUnitCore.dll"/> </references> </csc> </target> <target name="clean"> <delete file="NUnitCore.dll" failonerror="false"/> <delete file="NUnitBase.dll" failonerror="false"/> <delete file="NUnitConsole.exe" failonerror="false"/> <delete file="NUnitCore.pdb" failonerror="false"/> <delete file="NUnitBase.pdb" failonerror="false"/> <delete file="NUnitConsole.pdb" failonerror="false"/> </target> </project> |
Update of /cvsroot/csmail/csmail/nant/src/Tasks In directory usw-pr-cvs1:/tmp/cvs-serv25536/nant/src/Tasks Added Files: CallTask.cs ChangeLog CompilerBase.cs CopyTask.cs CscTask.cs DeleteTask.cs EchoTask.cs ExecTask.cs ExternalProgramBase.cs FailTask.cs IncludeTask.cs JscTask.cs McsTask.cs MkDirTask.cs MoveTask.cs NantTask.cs PropertyTask.cs SleepTask.cs StyleTask.cs TStampTask.cs TaskDefTask.cs VbcTask.cs Log Message: 2002-02-24 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * Added the source code of NAnt. --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Collections.Specialized; using System.Diagnostics; using System.IO; using System.Xml; [TaskName("call")] public class CallTask : Task { [TaskAttribute("target", Required=true)] string _target = null; // Attribute properties public string TargetName { get { return _target; } } protected override void ExecuteTask() { Project.Execute(TargetName); } } } --- NEW FILE --- 2002-04-26 Martin Baulig <ma...@gn...> * CompilerBase.cs (WriteOption): New virtual method. The default implementation writes CSC-style command line options, but it can be overridden in derived class to write mcs-style command line arguments. (ExecuteTask): Use the new virtual `WriteOption' method to write options. * CscTask.cs (WriteOptions): Use the new `WriteOption' method. * McsTask.cs: New file. --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) // Mike Krueger (mi...@ic...) namespace SourceForge.NAnt { using System; using System.Collections.Specialized; using System.Diagnostics; using System.IO; public abstract class CompilerBase : ExternalProgramBase { string _responseFileName; // Microsoft common compiler options [TaskAttribute("output", Required=true)] string _output = null; [TaskAttribute("target", Required=true)] string _target = null; [TaskAttribute("debug")] [BooleanValidator()] string _debug = Boolean.FalseString; [TaskAttribute("define")] string _define = null; [TaskAttribute("win32icon")] string _win32icon = null; [TaskFileSet("references")] FileSet _references = new FileSet(false); [TaskFileSet("resources")] FileSet _resources = new FileSet(false); [TaskFileSet("modules")] FileSet _modules = new FileSet(false); [TaskFileSet("sources")] FileSet _sources = new FileSet(true); // include all by default public string Output { get { return _output; } } public string OutputTarget { get { return _target; } } public bool Debug { get { return Convert.ToBoolean(_debug); } } public string Define { get { return _define; } } public string Win32Icon { get { return _win32icon; } } public FileSet References { get { return _references; } } public FileSet Resources { get { return _resources; } } public FileSet Modules { get { return _modules; } } public FileSet Sources { get { return _sources; } } public override string ProgramFileName { get { return Name; } } public override string ProgramArguments { get { return "@" + _responseFileName; } } protected virtual void WriteOptions(TextWriter writer) { } protected virtual void WriteOption(TextWriter writer, string name) { writer.WriteLine("/{0}", name); } protected virtual void WriteOption(TextWriter writer, string name, string arg) { writer.WriteLine("/{0}:{1}", name, arg); } protected string GetOutputPath() { return Path.GetFullPath(Path.Combine(BaseDirectory, Project.ExpandText(Output))); } protected virtual bool NeedsCompiling() { // return true as soon as we know we need to compile FileInfo outputFileInfo = new FileInfo(GetOutputPath()); if (!outputFileInfo.Exists) { return true; } if (FileSet.MoreRecentLastWriteTime(Sources.FileNames, outputFileInfo.LastWriteTime)) { return true; } if (FileSet.MoreRecentLastWriteTime(References.FileNames, outputFileInfo.LastWriteTime)) { return true; } if (FileSet.MoreRecentLastWriteTime(Modules.FileNames, outputFileInfo.LastWriteTime)) { return true; } // if we made it here then we don't have to recompile return false; } protected override void ExecuteTask() { if (NeedsCompiling()) { // create temp response file to hold compiler options _responseFileName = Path.GetTempFileName(); StreamWriter writer = new StreamWriter(_responseFileName); try { if (References.BaseDirectory == null) { References.BaseDirectory = BaseDirectory; } if (Modules.BaseDirectory == null) { Modules.BaseDirectory = BaseDirectory; } if (Sources.BaseDirectory == null) { Sources.BaseDirectory = BaseDirectory; } Log.WriteLine(LogPrefix + "Compiling {0} files to {1}", Sources.FileNames.Count, GetOutputPath()); // specific compiler options WriteOptions(writer); // Microsoft common compiler options WriteOption(writer, "nologo"); WriteOption(writer, "target", OutputTarget); WriteOption(writer, "out", GetOutputPath()); if (Debug) { WriteOption(writer, "debug"); WriteOption(writer, "define", "DEBUG"); WriteOption(writer, "define", "TRACE"); } if (Define != null) { WriteOption(writer, "define", Define); } if (Win32Icon != null) { WriteOption(writer, "win32icon", Win32Icon); } foreach (string fileName in References.FileNames) { WriteOption(writer, "reference", fileName); } foreach (string fileName in Modules.FileNames) { WriteOption(writer, "addmodule", fileName); } foreach (string fileName in Resources.FileNames) { WriteOption(writer, "resource", fileName); } foreach (string fileName in Sources.FileNames) { writer.WriteLine(fileName); } // Make sure to close the response file otherwise contents // will not be written to disc and EXecuteTask() will fail. writer.Close(); if (Verbose) { // display response file contents Log.WriteLine(LogPrefix + "Contents of " + _responseFileName); /* StreamReader reader = File.OpenText(_responseFileName); string line = reader.ReadLine(); while (line != null) { Log.WriteLine(LogPrefix + " " + line); line = reader.ReadLine(); } reader.Close(); */ StreamReader reader = File.OpenText(_responseFileName); Log.WriteLine(reader.ReadToEnd()); reader.Close(); } // call base class to do the work base.ExecuteTask(); } finally { // make sure we delete response file even if an exception is thrown writer.Close(); // make sure stream is closed or file cannot be deleted File.Delete(_responseFileName); _responseFileName = null; } } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) // Ian MacLean (ian...@an...) namespace SourceForge.NAnt { using System; using System.IO; using System.Xml; using System.Text; using System.Collections; using System.Collections.Specialized; [TaskName("copy")] public class CopyTask : Task { [TaskAttribute("file")] string _sourceFile = null; [TaskAttribute("tofile")] string _toFile = null; [TaskAttribute("todir")] string _toDirectory = null; [TaskAttribute("filtering")] [BooleanValidator()] string _filtering = Boolean.FalseString; [TaskAttribute("flatten")] [BooleanValidator()] string _flatten = Boolean.FalseString; [TaskAttribute("includeEmptyDirs")] [BooleanValidator()] string _includeEmptyDirs = Boolean.FalseString; [TaskFileSet("fileset")] FileSet _fileset = new FileSet(true); // include all by default [TaskAttribute("overwrite")] [BooleanValidator()] string _overwrite = Boolean.FalseString; [TaskAttribute("verbose")] [BooleanValidator()] string _verbose = Boolean.FalseString; [TaskAttribute("preserveLastModified")] [BooleanValidator()] string _preserveLastModified = Boolean.FalseString; Hashtable _fileCopyMap = new Hashtable(); public string SourceFile { get { return _sourceFile; } } public string ToFile { get { return _toFile; } } public string ToDirectory { get { return _toDirectory; } } public bool Filtering { get { return Convert.ToBoolean(_filtering); } } public bool Flatten { get { return Convert.ToBoolean(_flatten); } } public bool IncludeEmptyDirs { get { return Convert.ToBoolean(_includeEmptyDirs); } } public bool Overwrite { get { return Convert.ToBoolean(_overwrite); } } public bool PreserveLastModified{ get { return Convert.ToBoolean(_preserveLastModified); } } public FileSet CopyFileSet { get { return _fileset; } } public bool Verbose { get { return (Project.Verbose || Convert.ToBoolean(_verbose)); } } protected Hashtable FileCopyMap { get { return _fileCopyMap; } } /// <summary> /// Actually does the file (and possibly empty directory) copies. /// </summary> protected virtual void DoFileOperations() { int fileCount = FileCopyMap.Keys.Count; if (fileCount > 0) { if (ToDirectory != null) { Log.WriteLine(LogPrefix + "Copying {0} files to {1}", fileCount, Project.GetFullPath(ToDirectory)); } else { Log.WriteLine(LogPrefix + "Copying {0} files", fileCount); } // loop thru our file list foreach (string sourcePath in FileCopyMap.Keys) { string dstPath = (string)FileCopyMap[sourcePath]; if (sourcePath == dstPath) { if (Verbose) { Log.WriteLine(LogPrefix + "Skipping self-copy of {0}" + sourcePath); } continue; } try { if (Verbose) { Log.WriteLine(LogPrefix + "Copying {0} to {1}", sourcePath, dstPath); } // create directory if not present string dstDirectory = Path.GetDirectoryName(dstPath); if (!Directory.Exists(dstDirectory)) { Directory.CreateDirectory(dstDirectory); if (Verbose) { Log.WriteLine(LogPrefix + "Created directory {0}", dstDirectory); } } File.Copy(sourcePath, dstPath, true); } catch (IOException ioe) { string msg = String.Format("Cannot copy {0} to {1}", sourcePath, dstPath); throw new BuildException(msg, Location, ioe); } } } // TODO: handle empty directories in the fileset, refer to includeEmptyDirs attribute at // http://jakarta.apache.org/ant/manual/CoreTasks/copy.html } protected override void ExecuteTask() { string dstDirectoryPath = Project.GetFullPath(ToDirectory); string srcFilePath = Project.GetFullPath(SourceFile); FileInfo srcInfo = new FileInfo(srcFilePath); string dstFilePath; if (ToFile == null) { dstFilePath = dstDirectoryPath + Path.DirectorySeparatorChar + srcInfo.Name; } else { dstFilePath = Project.GetFullPath(ToFile); } FileInfo dstInfo = new FileInfo(dstFilePath); if (SourceFile != null) { if (srcInfo.Exists) { // do the outdated check bool outdated = (!dstInfo.Exists) || (srcInfo.LastWriteTime > dstInfo.LastWriteTime); if (Overwrite || outdated) { // add to a copy map of absolute verified paths FileCopyMap.Add(srcFilePath, dstFilePath); } } else { Log.WriteLine(LogPrefix + "Could not find file {0} to copy.", srcFilePath); } } else { // get the complete path of the base directory of the fileset, ie, c:\work\nant\src string srcBasePath = Project.GetFullPath(CopyFileSet.BaseDirectory); string dstBasePath = Project.GetFullPath(ToDirectory); // if source file not specified use fileset foreach (string pathname in CopyFileSet.FileNames) { // replace the fileset path with the destination path // NOTE: big problems could occur if the file set base dir is rooted on a different drive string dstPath = pathname.Replace(srcBasePath, dstBasePath); srcInfo = new FileInfo(pathname); dstInfo = new FileInfo(dstPath); if (srcInfo.Exists) { // do the outdated check bool outdated = (!dstInfo.Exists) || (srcInfo.LastWriteTime > dstInfo.LastWriteTime); if (Overwrite || outdated) { FileCopyMap.Add(pathname, dstPath); } } else { Log.WriteLine(LogPrefix + "Could not find file {0} to copy.", srcFilePath); } } } // do all the actual copy operations now... DoFileOperations(); } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) // Mike Krueger (mi...@ic...) namespace SourceForge.NAnt { using System; using System.IO; [TaskName("csc")] public class CscTask : CompilerBase { // C# specific compiler options [TaskAttribute("doc")] string _doc = null; protected override void WriteOptions(TextWriter writer) { WriteOption(writer, "fullpaths"); if (_doc != null) { WriteOption(writer, "doc", _doc); } } protected override bool NeedsCompiling() { // TODO: add checks for any referenced files OR return false to always compile return base.NeedsCompiling(); } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) // TODO: move this into the task documentation (once we figure out how tasks // should be documented - xml?? /* verbose: Show name of each deleted file ("true"/"false"). Default is "false" when omitted. quiet: If the file does not exist, do not display a diagnostic message or modify the exit status to reflect an error (unless Ant has been invoked with the -verbose or -debug switches). This means that if a file or directory cannot be deleted, then no error is reported. This setting emulates the -f option to the Unix "rm" command. ("true"/"false"). Default is "false" meaning things are "noisy". Setting this to true, implies setting failonerror to false. failonerror: This flag (which is only of relevance if 'quiet' is false), controls whether an error -such as a failure to delete a file- stops the build task, or is merely reported to the screen. The default is "true" */ namespace SourceForge.NAnt { using System; using System.IO; [TaskName("delete")] public class DeleteTask : Task { [TaskAttribute("file")] string _file = null; [TaskAttribute("dir")] string _dir = null; [TaskAttribute("verbose")] [BooleanValidator()] string _verbose = Boolean.FalseString; [TaskAttribute("failonerror")] [BooleanValidator()] string _failOnError = Boolean.TrueString; /// <summary>If true then delete empty directories when using filesets.</summary> [TaskAttribute("includeEmptyDirs")] [BooleanValidator()] string _includeEmptyDirs = Boolean.FalseString; [TaskFileSet("fileset")] FileSet _fileset = new FileSet(false); public string FileName { get { return _file; } } public string DirectoryName { get { return _dir; } } public bool FailOnError { get { return Convert.ToBoolean(_failOnError); } } public bool IncludeEmptyDirectories { get { return Convert.ToBoolean(_includeEmptyDirs); } } public FileSet DeleteFileSet { get { return _fileset; } } public bool Verbose { get { return (Project.Verbose || Convert.ToBoolean(_verbose)); } } protected override void ExecuteTask() { // limit task to deleting either a file or a directory or a file set if (FileName != null && DirectoryName != null) { throw new BuildException("Cannot specify 'file' and 'dir' in the same delete task", Location); } // try to delete specified file if (FileName != null) { string path = null; try { path = Project.GetFullPath(FileName); } catch (Exception e) { string msg = String.Format("Could not determine path from {0}", FileName); throw new BuildException(msg, Location, e); } DeleteFile(path); // try to delete specified directory } else if (DirectoryName != null) { string path = null; try { path = Project.GetFullPath(DirectoryName); } catch (Exception e) { string msg = String.Format("Could not determine path from {0}", DirectoryName); throw new BuildException(msg, Location, e); } DeleteDirectory(path); // delete files/directories in fileset } else { // only use the file set if file and dir attributes have NOT been set foreach (string path in DeleteFileSet.FileNames) { DeleteFile(path); } if (IncludeEmptyDirectories) { foreach (string path in DeleteFileSet.DirectoryNames) { // only delete EMPTY directories (no files, no directories) DirectoryInfo dirInfo = new DirectoryInfo(path); if ((dirInfo.GetFiles().Length == 0) && (dirInfo.GetDirectories().Length == 0)) { DeleteDirectory(path); } } } } } void DeleteDirectory(string path) { try { if (Directory.Exists(path)) { if (Verbose) { Log.WriteLine(LogPrefix + "Deleting directory {0}", path); } if (path.Length > 10) { Directory.Delete(path, true); } else { // TODO: remove this once this task is fully tested and NAnt is at 1.0 Console.WriteLine(LogPrefix + "Path {0} is too close to root to delete this early in development", path); } } else { throw new DirectoryNotFoundException(); } } catch (Exception e) { if (FailOnError) { string msg = String.Format("Cannot delete directory {0}", path); throw new BuildException(msg, Location, e); } } } void DeleteFile(string path) { try { if (File.Exists(path)) { if (Verbose) { Log.WriteLine(LogPrefix + "Deleting file {0}", path); } File.Delete(path); } else { throw new FileNotFoundException(); } } catch (Exception e) { if (FailOnError) { string msg = String.Format("Cannot delete file {0}", path); throw new BuildException(msg, Location, e); } } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; [TaskName("echo")] public class EchoTask : Task { [TaskAttribute("message", Required=true)] string _message = null; protected override void ExecuteTask() { Log.WriteLine(LogPrefix + _message); } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.IO; [TaskName("exec")] public class ExecTask : ExternalProgramBase { [TaskAttribute("program", Required=true)] string _program = null; [TaskAttribute("commandline")] string _commandline = null; [TaskAttribute("basedir")] string _baseDirectory = null; // Stop the buildprocess if the command exits with a returncode other than 0. [TaskAttribute("failonerror")] [BooleanValidator()] string _failonerror = Boolean.TrueString; // TODO: change this to Int32Parameter to ensure value is a valid Int32 type after text expansion [TaskAttribute("timeout")] [Int32Validator()] string _timeout = Int32.MaxValue.ToString(); public override string ProgramFileName { get { return Project.GetFullPath(_program); } } public override string ProgramArguments { get { return _commandline; } } public override string BaseDirectory { get { return Project.GetFullPath(_baseDirectory); } } public override int TimeOut { get { return Convert.ToInt32(_timeout); } } public override bool FailOnError { get { return Convert.ToBoolean(_failonerror); } } protected override void ExecuteTask() { Log.WriteLine(LogPrefix + "{0} {1}", Path.GetFileName(ProgramFileName), GetCommandLine()); base.ExecuteTask(); } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Collections.Specialized; using System.Diagnostics; using System.IO; using System.Text; using System.Xml; public abstract class ExternalProgramBase : Task { [TaskAttribute("verbose")] [BooleanValidator()] string _verbose = Boolean.FalseString; public abstract string ProgramFileName { get; } public abstract string ProgramArguments { get; } public virtual string BaseDirectory { get { if (Project != null) { return Project.BaseDirectory; } else { return null; } } } public virtual int TimeOut { get { return Int32.MaxValue; } } public virtual bool FailOnError { get { return true; } } public bool Verbose { get { return (Project.Verbose || Convert.ToBoolean(_verbose)); } } StringCollection _args = new StringCollection(); protected override void InitializeTask(XmlNode taskNode) { // initialize the _args collection foreach (XmlNode optionNode in taskNode.SelectNodes("arg")) { // TODO: decide if we should enforce arg elements not being able // to accept a file and value attribute on the same element. // Ideally this would be down via schema and since it doesn't // really hurt for now I'll leave it in. XmlNode valueNode = optionNode.SelectSingleNode("@value"); if (valueNode != null) { _args.Add(Project.ExpandText(valueNode.Value)); } XmlNode fileNode = optionNode.SelectSingleNode("@file"); if (fileNode != null) { _args.Add(Project.GetFullPath(Project.ExpandText(fileNode.Value))); } } } public string GetCommandLine() { // append any nested <arg> arguments to command line StringBuilder arguments = new StringBuilder(ProgramArguments); foreach (string arg in _args) { arguments = arguments.Append(' '); arguments = arguments.Append(arg); } return arguments.ToString(); } protected override void ExecuteTask() { try { // create process to launch compiler (redirect standard output to temp buffer) Process process = new Process(); process.StartInfo.FileName = ProgramFileName; process.StartInfo.Arguments = GetCommandLine(); process.StartInfo.RedirectStandardOutput = true; process.StartInfo.UseShellExecute = false; process.StartInfo.WorkingDirectory = BaseDirectory; if (Verbose) { Log.WriteLine(LogPrefix + "{0}>{1} {2}", process.StartInfo.WorkingDirectory, process.StartInfo.FileName, process.StartInfo.Arguments); } process.Start(); // display standard output StreamReader reader = process.StandardOutput; string output = reader.ReadToEnd(); if (output.Length > 0) { int indentLevel = Log.IndentLevel; Log.IndentLevel = 0; Log.WriteLine(output); Log.IndentLevel = indentLevel; } // wait for program to exit process.WaitForExit(TimeOut); if (FailOnError && process.ExitCode != 0) { throw new BuildException("Program error, see build log for details."); } } catch (Exception e) { throw new BuildException(e.Message, Location, e); } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; [TaskName("fail")] public class FailTask : Task { [TaskAttribute("message")] string _message = null; protected override void ExecuteTask() { string message = _message; if (message == null) { message = "No message"; } throw new BuildException(message); } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Ian MacLean (ian...@an...) namespace SourceForge.NAnt { using System; using System.Xml; using System.Collections; using System.Collections.Specialized; /// <summary> /// Summary description for IncludeTask. /// </summary> [TaskName("include")] // TODO make into ant:include public class IncludeTask : Task { /// <summary>hours to to add to the sleep time</summary> [TaskAttribute("href", Required=true)] string _href = null; // Attribute properties public string Href { get { return _href; } } XPathTextPositionMap _positionMap; // created when Xml document is loaded TaskCollection _tasks = new TaskCollection(); // static members static System.Collections.Stack _includesStack = new Stack(); static bool IsIncluded( string href ) { bool result = false; IEnumerator stackenum = _includesStack.GetEnumerator(); while ( stackenum.MoveNext()) { if ( href == (string)stackenum.Current ) { result = true; break; } } return result; } protected void InitializeIncludedDocument(XmlDocument doc) { // Load line Xpath to linenumber array _positionMap = new XPathTextPositionMap(doc.BaseURI); // process all the non-target nodes (these are global tasks for the project) XmlNodeList taskList = doc.SelectNodes("project/*[name() != 'target']"); foreach (XmlNode taskNode in taskList) { // TODO: do somethiing like Project.CreateTask(taskNode) and have the project set the location TextPosition textPosition = _positionMap.GetTextPosition(taskNode); Task task = Project.CreateTask(taskNode); if (task != null) { // Store a local copy also so we can execute only those _tasks.Add(task); } } // execute global tasks now - before anything else // this lets us include tasks that do things like add more tasks // Here is where we should check for recursive dependencies // foreach (Task task in _tasks ) { task.Execute(); } // process all the targets XmlNodeList targetList = doc.SelectNodes("project/target"); foreach (XmlNode targetNode in targetList) { Target target = new Target(Project); target.Initialize(targetNode); Project.Targets.Add(target); } } /// <summary> /// verify parameters ///</summary> ///<param name="taskNode"> taskNode used to define this task instance </param> protected override void InitializeTask(XmlNode taskNode) { //TODO check where we are in document - if not at top level then bail out on error ... // basic recursion check if (IsIncluded( Project.GetFullPath(Href) )) { throw new BuildException("Recursive includes are not allowed", Location); } } protected override void ExecuteTask() { string fullpath = Project.GetFullPath(Href); // push ourselves onto the stack _includesStack.Push(fullpath); try { XmlDocument doc = new XmlDocument(); // Handle local file case doc.Load(fullpath); InitializeIncludedDocument(doc); } // Handling the case where a nested include causes an exception during initialization catch ( BuildException ) { throw; } catch ( Exception e) { throw new BuildException(e.Message, Location, e); } finally { // Pop off the stack _includesStack.Pop(); } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) // Mike Krueger (mi...@ic...) namespace SourceForge.NAnt { using System; using System.IO; [TaskName("jsc")] public class JscTask : CompilerBase { // TODO: add JScript.NET specific compiler options here (see CscTask) protected override void WriteOptions(TextWriter writer) { // TODO: add support for compiler specific options } protected override bool NeedsCompiling() { // TODO: add checks for any referenced files OR return false to always compile return base.NeedsCompiling(); } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2002 Ximian, Inc. // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Martin Baulig (ma...@gn...) using System; using System.IO; namespace SourceForge.NAnt { [TaskName("mcs")] public class McsTask : CompilerBase { protected override void WriteOption(TextWriter writer, string name) { if (name.Equals("nologo")) { return; } else { writer.WriteLine("--{0}", name); } } protected override void WriteOption(TextWriter writer, string name, string arg) { if (name.Equals("out")) { writer.WriteLine("-o {0}", arg); } else if (name.Equals("reference")) { writer.WriteLine("-r {0}", arg); } else { writer.WriteLine("--{0} {1}", name, arg); } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) // Ian MacLean (ian...@an...) namespace SourceForge.NAnt { using System; using System.IO; /// <summary>Creates a directory and any non-existent parent directories when necessary.</summary> [TaskName("mkdir")] public class MkDirTask : Task { [TaskAttribute("dir", Required=true)] string _dir = null; // the directory to create protected override void ExecuteTask() { try { string directory = Project.GetFullPath(_dir); if (!Directory.Exists(directory)) { Log.WriteLine(LogPrefix + "Creating directory {0}", directory); DirectoryInfo result = Directory.CreateDirectory(directory); if (result == null) { string msg = String.Format("Unknown error creating directory '{0}'", directory); throw new BuildException(msg, Location); } } } catch (Exception e) { throw new BuildException(e.Message, Location, e); } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) // Ian MacLean (ian...@an...) namespace SourceForge.NAnt { using System; using System.IO; [TaskName("move")] public class MoveTask : CopyTask { /// <summary> /// Actually does the file (and possibly empty directory) copies. /// </summary> protected override void DoFileOperations() { if (FileCopyMap.Count > 0) { // loop thru our file list foreach (string sourcePath in FileCopyMap.Keys) { string destinationPath = (string)FileCopyMap[sourcePath]; if (sourcePath == destinationPath) { Log.WriteLine(LogPrefix + "Skipping self-move of {0}" + sourcePath); continue; } try { // check if directory exists if (Directory.Exists(sourcePath)) { Log.WriteLine(LogPrefix + "moving directory {0} to {1}", sourcePath, destinationPath); Directory.Move(sourcePath, destinationPath); } else { DirectoryInfo todir = new DirectoryInfo(destinationPath); if ( !todir.Exists ) { Directory.CreateDirectory( Path.GetDirectoryName(destinationPath) ); } Log.WriteLine(LogPrefix + "Moving {0} to {1}", sourcePath, destinationPath); // IM look into how Ant does this for directories File.Move(sourcePath, destinationPath); } } catch (IOException ioe) { string msg = String.Format("Failed to move {0} to {1}\n{2}", sourcePath, destinationPath, ioe.Message); throw new BuildException(msg, Location); } } } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Collections.Specialized; using System.Diagnostics; using System.IO; using System.Xml; [TaskName("nant")] public class NantTask : Task { [TaskAttribute("buildfile")] string _buildFileName = null; [TaskAttribute("basedir")] string _baseDirectory = null; // TODO: add support for multiple targets [TaskAttribute("target")] string _target = null; protected override void ExecuteTask() { string directory = Project.GetFullPath(_baseDirectory); string buildFileName = _buildFileName; if (buildFileName == null) { buildFileName = Project.FindBuildFileName(directory); } try { Log.WriteLine(LogPrefix + "{0} {1}", buildFileName, _target); Log.Indent(); Project project = new Project(); project.BaseDirectory = directory; project.BuildFileName = buildFileName; if (_target != null) { project.BuildTargets.Add(_target); } if (!project.Run()) { throw new BuildException("Nested build failed - refer to build log for exact reason."); } } finally { Log.Unindent(); } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; [TaskName("property")] public class PropertyTask : Task { [TaskAttribute("name", Required=true)] string _name = null; [TaskAttribute("value", Required=true)] string _value = String.Empty; protected override void ExecuteTask() { Project.Properties[_name] = _value; } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Ian MacLean (ian...@an...) namespace SourceForge.NAnt { using System; using System.Xml; using System.Threading; /// <summary> /// A task for sleeping a short period of time, useful when a build or deployment process /// requires an interval between tasks. /// </summary> [TaskName("sleep")] public class SleepTask : Task { /// <summary>hours to to add to the sleep time</summary> [TaskAttribute("hours")] string _hours = null; /// <summary>minutes to add to the sleep time</summary> [TaskAttribute("minutes")] string _minutes = 0.ToString(); /// <summary>seconds to add to the sleep time</summary> [TaskAttribute("seconds")] string _seconds = 0.ToString(); /// <summary>milliseconds to add to the sleep time</summary> [TaskAttribute("milliseconds")] string _milliseconds = 0.ToString(); /// <summary>flag controlling whether to break the build on an error</summary> [TaskAttribute("failonerror")] [BooleanValidator()] string _failonerror = Boolean.FalseString; // Attribute properties public int Hours { get { return Convert.ToInt32(_hours); } } public int Minutes { get { return Convert.ToInt32(_minutes); } } public int Seconds { get { return Convert.ToInt32(_seconds); } } public int Milliseconds { get { return Convert.ToInt32(_milliseconds); } } public bool FailOnError { get { return Convert.ToBoolean(_failonerror); } } ///return time to sleep private int GetSleepTime() { return ((((int) Hours * 60) + Minutes) * 60 + Seconds) * 1000 + Milliseconds; } ///<summary> return time to sleep </summary> ///<param name="millis"> </param> private void DoSleep(int millis ) { Thread.Sleep(millis); } /// <summary> /// verify parameters ///</summary> ///<param name="taskNode"> taskNode used to define this task instance </param> protected override void InitializeTask(XmlNode taskNode) { if (GetSleepTime() < 0) { throw new BuildException("Negative sleep periods are not supported", Location); } } protected override void ExecuteTask() { int sleepTime = GetSleepTime(); Log.WriteLine(LogPrefix + "sleeping for {0} milliseconds", sleepTime); DoSleep(sleepTime); } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Serge (se...@wi...) // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.IO; using System.Xml; using System.Xml.Xsl; using System.Xml.XPath; using System.Text.RegularExpressions; [TaskName("style")] public class StyleTask : Task { // TODO: consider prefixing private fields with _ to stay consistent (gs) [TaskAttribute("basedir", Required=false)] string baseDir = null; [TaskAttribute("destdir", Required=false)] string destDir = null; [TaskAttribute("extension", Required=false)] string extension = "html"; [TaskAttribute("style", Required=true)] string xsltFile = null; [TaskAttribute("in", Required=true)] string srcFile = null; [TaskAttribute("out", Required=false)] string destFile = null; private static string GetPath(string dir, string file) { // TODO: remove platform dependencies by using System.IO.Path (gs) string d = (dir == null) ? "" : Regex.Replace(dir, "/", "\\"); return (d==null || d=="") ? (file==null || file=="") ? "" : file : d.EndsWith("\\") ? d +file : d + "\\" + file; } private XmlReader CreateXmlReader(string dir, string file) { string xmlPath = GetPath(dir, file); XmlTextReader xmlReader = null; try { xmlReader = new XmlTextReader(new FileStream(xmlPath, FileMode.Open)); } catch (Exception) { xmlReader = null; } return xmlReader; } private XmlWriter CreateXmlWriter(string dir, string file) { string xmlPath = GetPath(dir, file); XmlWriter xmlWriter = null; string targetDir = Path.GetDirectoryName(Path.GetFullPath(xmlPath)); if (targetDir != null && targetDir != "" && !Directory.Exists(targetDir)) { Directory.CreateDirectory(targetDir); } try { // UTF-8 encoding will be used xmlWriter = new XmlTextWriter(xmlPath, null); } catch (Exception) { xmlWriter = null; } return xmlWriter; } protected override void ExecuteTask() { string destFile = this.destFile; if (destFile == null || destFile == "") { // TODO: use System.IO.Path (gs) string ext = extension[0]=='.' ? extension : "." + extension; int extPos = srcFile.LastIndexOf('.'); if (extPos == -1) { destFile = srcFile + ext; } else { destFile = srcFile.Substring(0, extPos) + ext; } } string srcPa... [truncated message content] |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:46:26
|
Update of /cvsroot/csmail/csmail/nant/doc In directory usw-pr-cvs1:/tmp/cvs-serv25536/nant/doc Added Files: arrow.gif authors.html changelog.html index.html license.html style.css todo.html Log Message: 2002-02-24 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * Added the source code of NAnt. --- NEW FILE --- GIF89a --- NEW FILE --- <html> <head> <meta http-equiv="Content-Language" content="en-ca"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <link rel="stylesheet" type="text/css" href="style.css" /> <title>NAnt Authors</title> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar"> <tr><td class="NavBar-Cell" width="100%"><a title="NAnt home page" href="index.html"><b>NAnt</b></a> <img src="arrow.gif" alt="->"/> Authors</td></tr> </table> <h1><span class="N">N</span><span class="Ant">Ant</span> Authors</h1> <h3>Lead Developer</h3> <ul> <li>Gerry Shaw (ger...@ya...)</li> </ul> <h3>Developers</h3> <ul> <li>Ian MacLean (ian...@an...)</li> </ul> <h3>Code Contributions (sorted by name)</h3> <ul> <li>Mike Krueger (mi...@ic...)</li> <li>Sergey Chaban (se...@wi...)</li> </ul> <h3><a></a>Special Thanks To</h3> <ul> <li>The <a href="http://jakarta.apache.org/ant/">Ant</a> team on the Jakarta project.</li> <li><a href="http://www.hazware.com/">Hazware</a> for the original XBuild source.</li> <li><a href="http://nunit.sourceforge.net/">Philip Craig</a> for NUnit.</li> <li><a href="http://msdn.microsoft.com/net/">Microsoft</a> for making .NET and C#.</li> <li>Ximian for working on the <a href="http://www.go-mono.com">Mono</a> project ot make .NET a true open standard.</li> </ul> </body> </html> --- NEW FILE --- <html> <head> <meta http-equiv="Content-Language" content="en-ca"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <link rel="stylesheet" type="text/css" href="style.css" /> <title>NAnt Change Log</title> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar"> <tr><td class="NavBar-Cell" width="100%"><a title="NAnt home page" href="index.html"><b>NAnt</b></a> <img src="arrow.gif" alt="->"/> Change Log</td></tr> </table> <h1><span class="N">N</span><span class="Ant">Ant</span> Change Log</h1> <h3>0.6.0 September 18, 2001</h3> <ul> <li>report build file xml errors in a useful way</li> <li>report error location when tasks are missing required attributes</li> <li>copy task updated - thanks to Ian MacLean</li> <li>**/*.cs type pattern matching now available in file sets via DirectoryScanner class</li> <li>Ian MacLean added as a project developer</li> <li>added all the environment variables to properites, ie, <echo message="path=${nant.env.PATH}"/></li> <li>move task updated - thanks to Ian MacLean</li> <li>sleep task added - thanks to Ian MacLean</li> <li>DirectoryScanner and FileSet's scan for files AND directories now</li> <li>FileSet's cache scan results, use Scan() to rescan</li> <li>FileSet's auto initialize to their containing Task, this helps clean up the code</li> <li>copy task can now copy full directory trees</li> <li>added verbose attribute to copy task, default off, message gives number of files processed</li> <li>fixed bug with any ExternalBase tasks hanging - thanks to Sergey Chaban for reporting</li> <li>include task added</li> <li>call task added</li> <li>-verbose command line option added</li> <li>build file can now build complete distribution, try 'nant dist'</li> </ul> <h3>0.5.0 August 22, 2001</h3> <ul> <li>complete overhaul of the web site and doc folder (all html files)</li> <li>made src a parent folder to be able to hold multiple assemblies in anticipation of the NAnt.Tests.dll assembly</li> <li>licensed changed to GNU General Public License</li> <li>source code placed under CVS</li> <li>tasks can now have attributes in base classes, see CompilerBase as an example - thanks to Mike Krueger</li> <li>coding conventions posted on SourceForge in the document manager</li> <li>task manager in SourceForge is now being used to track currently active tasks</li> <li>namespace changed to SourceForge.NAnt</li> <li>added basic command line parsing</li> <li>added version resource</li> <li>support for multiple build targets (try 'nant clean test')</li> <li>BuildException added to report text position in the build file where errors occur - thanks to Ian MacLean</li> <li>style task (xslt processing) added - thanks to Serge</li> <li>executable is now signed with the NAnt.key</li> <li>converted all public/protected fields to properties</li> <li>added support for user define properties</li> <li>added -set option (try 'nant -set:debug=true clean build')</li> <li>changed verions number to 0.5 to reflect the number of changes in the code base</li> </ul> <h3>0.1.5 July 22, 2001</h3> <ul> <li>only compiles program if source file last write time > output last write time</li> <li>refactored compiler code into common CompilerBase class</li> <li>refactored compiler and exec task into common ExternalProgramBase class</li> <li>added <arg value="/win32res:filename"/> element to all external program tasks</li> <li>added Int32ValidatorAttribute and BooleanValidatorAttribute classes to perform error checking on task attributes after macro expansion but before task execution. Search for BooleanValidator or Int32Validator in Tasks for examples.</li> <li>changed Task attribute names to TaskAttributeAttribute and FileSetAttribute</li> <li>removed default value for task attributes (set with initial value)</li> <li>changes to Project class on how to initialize a project and run it</li> <li>right aligned task prefixes to clean up output</li> <li>added or enhanced these tasks <ul> <li>vbc, jsc, csc</li> <li>move</li> <li>nant</li> <li>taskdef</li> <li>tstamp</li> <li>exec (failonerror attribute)</li> </ul> </li> </ul> <h3>0.1.4 July 19, 2001</h3> <ul> <li>added or enhanced these tasks <ul> <li>echo</li> <li>fail</li> <li>property</li> <li>copy (respects basedir)</li> <li>delete (respects basedir)</li> <li>mkdir (respects basedir)</li> <li>exec</li> </ul> </li> </ul> <h3>0.1.3 July 18, 2001</h3> <ul> <li>dependices working via depends attribute on targets</li> <li>changed name from NBuild to NAnt</li> <li>using the name "Parameter" to refer to the xml attributes in tasks because it was conflicting badly with .NET Attributes</li> <li>added FileSetParameterAttribute so that fileset parameters would autoinit</li> <li>renamed TaskAttributeAttribute to StringParameterAttribute</li> <li>broke into seperate source files (one per class)</li> <li>changed default build file from Project.xml to the first file with a .build extension</li> </ul> <h3>0.1.2 July 16, 2001</h3> <ul> <li>basic functionality to have NAnt build itself (csc task)</li> </ul> <h3>0.1.1 July 5, 2001</h3> <ul> <li>initial test version</li> </ul> </body> </html> --- NEW FILE --- <html> <head> <meta http-equiv="Content-Language" content="en-ca"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <link rel="stylesheet" type="text/css" href="style.css" /> <title>NAnt - A .NET Build Tool</title> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar"> <tr><td class="NavBar-Cell" width="100%"><b>NAnt</b> : A .NET Build Tool</td></tr> </table> <h1><span class="N">N</span><span class="Ant">Ant</span> Home Page</h1> <p>September 18, 2001 Gerry Shaw -- <a title="Send email to Gerry Shaw" href="mailto:ger...@ya...">ger...@ya...</a></p> <p>NAnt is a .NET based build tool. In theory it is kind of like make without make's wrinkles. In practice it's a lot like <a title="Ant home page" href="http://jakarta.apache.org/ant/">Ant</a>. NAnt has only been tested with Beta 2 .NET SDK, build 2914.</p> <p>The idea for NAnt came from <a title="Hazware home page" href="http://www.hazware.com/xbHome.htm"> Hazware's XBuild</a> project. After emailing the author for a beta 2 version of the tool and getting no response I decided to port the code to .NET beta 2. Due to the number of changes from .NET beta 1 to beta 2 the result was a total rewrite.</p> <ul> <li><a title="NAnt files page on SourceForge" href="http://sourceforge.net/project/showfiles.php?group_id=31650"><b>Download latest version</b></a> from SourceForge</li> <li><a title="NAnt web site on SourceForge" href="http://nant.sourceforge.net">Home page</a> on SourceForge</li> <li><a title="NAnt project summary on SourceForge" href="http://sourceforge.net/projects/nant/">Project summary</a> on SourceForge</li> <li><a title="Version history of NAnt" href="changelog.html">Changes</a></li> <li><a title="Tasks still being worked on" href="todo.html">To do</a></li> <li><a title="Project credits" href="authors.html">Authors</a></li> <li><a title="Software license agreement" href="license.html">License</a></li> </ul> <h2>Getting Started</h2> <p>Since the software is still in heavy development you are going to be on your own. You can see NAnt build itself by doing the following:</p> <ol> <li>Download the latest released version.</li> <li>Unzip the distribution into a new folder.</li> <li>Using a command prompt (so you can see the build output) cd into the folder where NAnt was unzipped.</li> <li>Type <code>bin\nant</code> at the command prompt to build NAnt.</li> </ol> <p><a href="http://sourceforge.net"><img valign="middle" src="http://sourceforge.net/sflogo.php?group_id=31650" width="88" height="31" border="0" alt="SourceForge logo (link to home page)"></a></p> </body> </html> --- NEW FILE --- <html> <head> <meta http-equiv="Content-Language" content="en-ca"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <link rel="stylesheet" type="text/css" href="style.css" /> <title>NAnt License</title> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar"> <tr><td class="NavBar-Cell" width="100%"><a title="NAnt home page" href="index.html"><b>NAnt</b></a> <img src="arrow.gif" alt="->"/> License</td></tr> </table> <h1><span class="N">N</span><span class="Ant">Ant</span> License</h1> <p>Copyright © 2001 Gerry Shaw</p> <p> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. </p> <p> This program 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 General Public License for more details. </p> <p> You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA </p> <p> <b>In addition, as a special exception</b>, Gerry Shaw gives permission to link the code of this program with the Microsoft .NET library (or with modified versions of Microsoft .NET library that use the same license as the Microsoft .NET library), and distribute linked combinations including the two. You must obey the GNU General Public License in all respects for all of the code used other than the Microsoft .NET library. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. </p> <p>A copy of the GNU General Public License is available in the COPYING.txt file included with all NAnt distributions.</p> <p>The <a title="GNU home page" href="http://www.gnu.org/">GNU Project</a> has more information on the <a title="Full text of the GNU Public License" href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</a>.</p> </body> </html> --- NEW FILE --- body { font-family: Georgia, "Times New Roman", Times, "New York", serif; background: white; color: black } h1, h2, h3, h4, h5, h6 { font-family: Verdana, Arial, Helvetica, Geneva, SunSans-Regular, sans-serif } h1.LinkHeader, h2.LinkHeader, h3.LinkHeader { margin-bottom: -18 } h4 { margin-bottom: 0.5em } h5 { margin-bottom: -.8em; } hr { color: gray } input { font-family: Verdana, Arial, Helvetica, Geneva, SunSans-Regular, sans-serif; } a:link { color: #0000cc; } a:visited { color: purple } a:active { color: #cc0000 } a:hover { color: #cc0000; } /* Because HTML 4.0 strict does not include the border attribute for images we turn it off with a style but this totally messes up Navigator 4.7 so we can't use it. a:link img, a:visited img, a:active img { border: none } */ /* have list items flush left against lists in a side bar use this style */ ul.FlushLeft { margin-left: 1.25em; list-style-position: outside } .NavBar { background-color: #dfff80; border-color: #999966; border-style: none none solid none; border-width: 2px; } .NavBar-Cell { font-family: Verdana, Arial, Helvetica, Geneva, SunSans-Regular, sans-serif; font-size: 79%; } .SideBar { font-size: 80%; font-family: Verdana, Arial, Helvetica, Geneva, SunSans-Regular, sans-serif; padding: 8px; } /* color scheme */ .N { color: #99cc00; } .Ant { color: #ff9900; } --- NEW FILE --- <html> <head> <meta http-equiv="Content-Language" content="en-ca"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <link rel="stylesheet" type="text/css" href="style.css" /> <title>NAnt To Do</title> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar"> <tr><td class="NavBar-Cell" width="100%"><a title="NAnt home page" href="index.html"><b>NAnt</b></a> <img src="arrow.gif" alt="->" width="13" height="9"/> To Do</td></tr> </table> <h1><span class="N">N</span><span class="Ant">Ant</span> To Do</h1> <p>The following is a rough guide to what features are being worked on and when they will be worked on in the future.</p> <p>For a list of what is actively being worked refer to the <a title="SourceForge task manager for NAnt" href="https://sourceforge.net/pm/?group_id=31650">NAnt Task Manager</a> on SourceForge.</p> <h3>0.7</h3> <ul> <li>command line parsing using clippy (another tool I'm working on that will be posted soon)</li> <li>clippy task (for command line parsing)</li> <li>nunit tests</li> <li>nunit task</li> <li>validate build file for valid xml and against a schema before starting build</li> <li>code xml docs for all non private members</li> <li>developer docs (code conventions, high level design)</li> <li>post newsgroup announcment</li> <li>request code review and project help</li> </ul> <h3>0.8</h3> <ul> <li>task documentation for users</li> <li>zip task</li> <li>ftp task</li> <li>standard input support for tasks that require input (ie, passwords when copying files via scp to SourceForge)</li> </ul> <h3>1.0</h3> <ul> <li>official release</li> <li>general cleanup</li> <li>xml documentation</li> <li>user documentation</li> <li>post newsgroup announcment</li> </ul> <h3>1.1</h3> <ul> <li>additional optional but useful tasks (sql, touch, email, grep)</li> </ul> </body> </html> |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:46:26
|
Update of /cvsroot/csmail/csmail/nant In directory usw-pr-cvs1:/tmp/cvs-serv25536/nant Added Files: .cvsignore ChangeLog README-nant.txt makefile readme.txt Log Message: 2002-02-24 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * Added the source code of NAnt. --- NEW FILE --- NAnt.exe nant.exe --- NEW FILE --- 2002-04-28 Nick Drochak <ndr...@go...> * makefile: Make NAnt.exe dependant on all the *.cs in src and each sub dir. Since we don't remove it on a 'make clean' it doesn't get rebuilt when a new file is added or an existing one changed. 2002-03-17 Nick Drochak <ndr...@go...> * makefile: Do not remove the NAnt.exe on a 'make clean'. This would prevent other cleans from happening that need nant. 2002/03/15 Nick Drochak <ndr...@go...> * makefile: Compile a version of NAnt with Mono's libs. It only does this if you 'make NAnt_mono.exe'. Of course, right now the resulting exe probably is not going to work yet becuase of the immature class libs. --- NEW FILE --- NAnt What is it? ----------- NAnt is a .NET based build tool. In theory it is kind of like make without make's wrinkles. In practice it's a lot like Ant. If you are not familiar with Jakarta Ant you can get more information at the Jakarta project web site. http://jakarta.apache.org/ Why NAnt? --------- Because Ant was too Java specific. Because Ant needed the Java runtime. NAnt only needs the .NET runtime. The Latest Version ------------------ Details of the latest version can be found on the NAnt project web site http://nant.sourceforge.net/ Documentation ------------- Documentation is available in HTML format, in the doc/ directory. License ------- Copyright (C) 2001 Gerry Shaw This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA In addition, as a special exception, Gerry Shaw gives permission to link the code of this program with the Microsoft .NET library (or with modified versions of Microsoft .NET library that use the same license as the Microsoft .NET library), and distribute linked combinations including the two. You must obey the GNU General Public License in all respects for all of the code used other than the Microsoft .NET library. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. A copy of the GNU General Public License is available in the COPYING.txt file included with all NAnt distributions. For more licensing information refer to the GNU General Public License on the GNU Project web site. http://www.gnu.org/copyleft/gpl.html --- NEW FILE --- all: nant.exe linux: nant.exe windows: nant.exe nant.exe: NAnt.exe -cp NAnt.exe nant.exe NAnt.exe: makefile src/*.cs src/Attributes/*.cs src/Tasks/*.cs src/Util/*.cs csc /out:NAnt.exe /recurse:*.cs clean: --- NEW FILE --- This is an import of the Nant sources version 0.6.0 into the tree. We are doing this because the binaries were not compatible across versions of .NET. |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:46:26
|
Update of /cvsroot/csmail/csmail/nant/src/Util In directory usw-pr-cvs1:/tmp/cvs-serv25536/nant/src/Util Added Files: Log.cs XmlNodeTextPositionMap.cs Log Message: 2002-02-24 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * Added the source code of NAnt. --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Collections; using System.IO; using System.Text; public class TextWriterCollection : ArrayList { } public class Log { static bool _autoFlush = false; static int _indentLevel = 0; static int _indentSize = 4; static TextWriterCollection _listeners; protected Log() { } ~Log() { // make sure we release any open file handles Close(); } public static bool AutoFlush { get { return _autoFlush; } set { _autoFlush = value; } } public static int IndentLevel { get { return _indentLevel; } set { _indentLevel = value; } } public static int IndentSize { get { return _indentSize; } set { _indentSize = value; } } public static TextWriterCollection Listeners { get { if (_listeners == null) { _listeners = new TextWriterCollection(); _listeners.Add(Console.Out); } return _listeners; } } public static void Close() { foreach (TextWriter writer in Listeners) { // never close the Console.Out writer if (writer != Console.Out) { writer.Close(); } } } public static void Flush() { foreach (TextWriter writer in Listeners) { writer.Flush(); } } public static void Indent() { IndentLevel++; } public static void Unindent() { if (IndentLevel <= 0) { throw new InvalidOperationException("IndentLevel must be greater than zero before calling Unindent()"); } IndentLevel--; } /// <summary> /// Flag to indicate next string will start on a new line so that it can be indented. /// </summary> private static bool _newline = true; private static void PreprocessValue(ref string value) { // if we are starting a new line then first indent the string if (_newline) { if (IndentLevel > 0) { StringBuilder sb = new StringBuilder(value); sb.Insert(0, " ", IndentLevel * IndentSize); value = sb.ToString(); } _newline = false; } } public static void Write(string value) { PreprocessValue(ref value); foreach (TextWriter writer in Listeners) { writer.Write(value); } if (AutoFlush) { foreach (TextWriter writer in Listeners) { writer.Flush(); } } } public static void WriteLine() { WriteLine(String.Empty); } public static void WriteLine(string value) { PreprocessValue(ref value); foreach (TextWriter writer in Listeners) { writer.WriteLine(value); } if (AutoFlush) { foreach (TextWriter writer in Listeners) { writer.Flush(); } } // make sure we indent the next line _newline = true; } public static void Write(string format, params object[] arg) { Write(String.Format(format, arg)); } public static void WriteLine(string format, params object[] arg) { WriteLine(String.Format(format, arg)); } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.IO; using System.Text.RegularExpressions; using System.Xml; using System.Xml.XPath; using System.Collections; public struct TextPosition { public static readonly TextPosition InvalidPosition = new TextPosition(-1,-1); public TextPosition(int line, int column) { Line = line; Column = column; } public int Line; public int Column; } /// <summary> /// Maps XML nodes to the text positions from their original source. /// </summary> public class XPathTextPositionMap { Hashtable _map = new Hashtable(); public XPathTextPositionMap(string url) { string parentXPath = "/"; // default to root string previousXPath = ""; int previousDepth = 0; // Load text reader XmlTextReader reader = new XmlTextReader(url); ArrayList indexAtDepth = new ArrayList(); // Explicitly load document XPath _map.Add((object) "/", (object) new TextPosition(1, 1)); // loop thru all nodes in the document while (reader.Read()) { // reader to Node ... if ( (reader.NodeType.ToString() != "Whitespace") // Ignore those we aren't interested in && (reader.NodeType.ToString() != "EndElement") && (reader.NodeType.ToString() != "ProcessingInstruction") && (reader.NodeType.ToString() != "XmlDeclaration") ) { int level = reader.Depth; string currentXPath = ""; // If we arr higher than before if (reader.Depth < previousDepth) { // Clear vars for new depth string[] list = parentXPath.Split('/'); string newXPath = ""; // once appended to / will be root node ... for (int j = 1; j < level+1; j++) { newXPath += "/" + list[j]; } // higher than before so trim xpath\ parentXPath = newXPath; // one up from before // clear indexes for depth greater than ours indexAtDepth.RemoveRange(level+1, indexAtDepth.Count - (level+1)); } else if (reader.Depth > previousDepth) { // we are lower parentXPath = previousXPath; } // End depth setup // Setup up index array // add any needed extra items ( usually only 1 ) // would have uses array but not sure what maximum depth will be beforehand for (int index = indexAtDepth.Count; index < level+1; index++) { indexAtDepth.Add(0); } // Set child index if ((int) indexAtDepth[level] == 0) { // first time thru indexAtDepth[level] = 1; } else { indexAtDepth[level] = (int) indexAtDepth[level] + 1; // lower so append to xpath } // Do actual XPath generation if (parentXPath.EndsWith("/")) { currentXPath = parentXPath; } else { currentXPath = parentXPath + "/"; // add seperator } // Set the final XPath currentXPath += "child::node()[" + indexAtDepth[level] + "]"; // Add to our hash structures _map.Add((object) currentXPath, (object) new TextPosition(reader.LineNumber, reader.LinePosition)); // setup up loop vars for next iteration previousXPath = currentXPath; previousDepth = reader.Depth; } } } public TextPosition GetTextPosition(XmlNode node) { string xpath = GetXPathFromNode(node); return GetTextPosition(xpath); } public TextPosition GetTextPosition(string xpath) { TextPosition pos; if (_map.ContainsKey(xpath)) { pos = (TextPosition) _map[xpath]; } else { pos = TextPosition.InvalidPosition; } return pos; } private string GetXPathFromNode(XmlNode node) { XPathNavigator nav = node.CreateNavigator(); string xpath = ""; int index = 0; while (nav.NodeType.ToString() != "Root") { // loop thru children until we find ourselves XPathNavigator navParent = nav.Clone(); navParent.MoveToParent(); int parentIndex = 0; navParent.MoveToFirstChild(); if (navParent.IsSamePosition(nav)) { index = parentIndex; } while (navParent.MoveToNext()) { parentIndex++; if (navParent.IsSamePosition(nav)) { index = parentIndex; } } nav.MoveToParent(); // do loop condiditon here // if we are at doc and index = 0 then there is no xml proc instruction if ((nav.NodeType.ToString()) != "Root" || (index == 0)) { index = index + 1; // special case at root to avoid processing instruction .. } string thisNode = "child::node()[" + index + "]"; if (xpath == "") { xpath = thisNode; } else { // build xpath string xpath = thisNode + "/" + xpath; } } // prepend slash to ... xpath = "/" + xpath; return xpath; } } } |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:46:26
|
Update of /cvsroot/csmail/csmail/nant/src/Attributes In directory usw-pr-cvs1:/tmp/cvs-serv25536/nant/src/Attributes Added Files: BooleanValidatorAttribute.cs Int32ValidatorAttribute.cs TaskAttributeAttribute.cs TaskFileSetAttribute.cs TaskNameAttribute.cs ValidatorAttribute.cs Log Message: 2002-02-24 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * Added the source code of NAnt. --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Reflection; /// <summary>Indicates that field should be able to be converted into a Boolean.</summary> [AttributeUsage(AttributeTargets.Field, Inherited=true)] public class BooleanValidatorAttribute : ValidatorAttribute { public BooleanValidatorAttribute() { } public override string Validate(object value) { string errorMessage = null; try { Convert.ToBoolean(value); } catch (Exception) { errorMessage = String.Format("Cannot resolve to '{0}' to Boolean value.", value.ToString()); } return errorMessage; } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Reflection; /// <summary>Indicates that field should be able to be converted into a Int32 within the given range.</summary> [AttributeUsage(AttributeTargets.Field, Inherited=true)] public class Int32ValidatorAttribute : ValidatorAttribute { int _minValue = Int32.MinValue; int _maxValue = Int32.MaxValue; public Int32ValidatorAttribute() { } public Int32ValidatorAttribute(int minValue, int maxValue) { MinValue = minValue; MaxValue = maxValue; } public int MinValue { get { return _minValue; } set { _minValue = value; } } public int MaxValue { get { return _maxValue; } set { _maxValue = value; } } public override string Validate(object value) { string errorMessage = null; try { Int32 intValue = Convert.ToInt32(value); if (intValue < MinValue || intValue > MaxValue) { errorMessage = String.Format("Cannot resolve '{0}' to integer between '{1}' and '{2}'.", value.ToString(), MinValue, MaxValue); } } catch (Exception) { errorMessage = String.Format("Cannot resolve '{0}' to integer value.", value.ToString()); } return errorMessage; } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Reflection; /// <summary>Indicates that field should be treated as a xml attribute for the task.</summary> /// <example> /// Examples of how to specify task attributes /// <code> /// // task XmlType default is string /// [TaskAttribute("out", Required=true)] /// string _out = null; // assign default value here /// /// [TaskAttribute("optimize")] /// [BooleanValidator()] /// // during ExecuteTask you can safely use Convert.ToBoolean(_optimize) /// string _optimize = Boolean.FalseString; /// /// [TaskAttribute("warnlevel")] /// [Int32Validator(0,4)] // limit values to 0-4 /// // during ExecuteTask you can safely use Convert.ToInt32(_optimize) /// string _warnlevel = "0"; /// /// [TaskFileSet("sources")] /// FileSet _sources = new FileSet(); /// </code> /// NOTE: Attribute values must be of type of string if you want /// to be able to have macros. The field stores the exact value during /// InitializeTask. Just before ExecuteTask is called NAnt will expand /// all the macros with the current values. [AttributeUsage(AttributeTargets.Field, Inherited=true)] public class TaskAttributeAttribute : Attribute { string _name; bool _required; bool _expandText; public TaskAttributeAttribute(string name) { Name = name; Required = false; ExpandText = true; } public string Name { get { return _name; } set { _name = value; } } public bool Required { get { return _required; } set { _required = value; } } public bool ExpandText { get { return _expandText; } set { _expandText = value; } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Reflection; /// <summary>Indicates that field should be treated as a xml file set for the task.</summary> [AttributeUsage(AttributeTargets.Field, Inherited=true)] public class TaskFileSetAttribute : Attribute { string _name; public TaskFileSetAttribute(string name) { Name = name; } public string Name { get { return _name; } set { _name = value; } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Reflection; /// <summary>Indicates that class should be treated as a task.</summary> /// <remarks> /// Attach this attribute to a subclass of Task to have NAnt be able /// to reconize it. The name should be short but must not confict /// with any other task already in use. /// </remarks> [AttributeUsage(AttributeTargets.Class, Inherited=false, AllowMultiple=false)] public class TaskNameAttribute : Attribute { string _name; public TaskNameAttribute(string name) { _name = name; } public string Name { get { return _name; } set { _name = value; } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Reflection; public abstract class ValidatorAttribute : Attribute { public abstract string Validate(object value); } } |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:46:21
|
Update of /cvsroot/csmail/csmail/src/CSMail In directory usw-pr-cvs1:/tmp/cvs-serv25800/CSMail Log Message: Directory /cvsroot/csmail/csmail/src/CSMail added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:46:21
|
Update of /cvsroot/csmail/csmail/src/CSMail.Utils In directory usw-pr-cvs1:/tmp/cvs-serv25800/CSMail.Utils Log Message: Directory /cvsroot/csmail/csmail/src/CSMail.Utils added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:42:48
|
Update of /cvsroot/csmail/csmail/docs In directory usw-pr-cvs1:/tmp/cvs-serv23106/docs Added Files: .cvignore ChangeLog IDEAS by_object.cs by_object.xsl csMailAPI.xml makefile Log Message: 2002-02-24 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * docs/* --- Document files --- NEW FILE --- html/*.html --- NEW FILE --- 2002-06-19 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * by_object.cs, by_object.xsl: Added new files. * html : Added new directory. * html/*.css, html/[images] : Added new files. 2002-06-18 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * The API now has a better shape and the features seem to be visible now. A document on ideas has been included in the file IDEAS. * Added file(s): - IDEAS * The only thing left out now is of the events and event handlers. 2002-06-17 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * Added the following classes: - ContentType 2002-06-14 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * Removed the classes: - Body - Part * Added interfaces: - IPart - IMimePart * Added classes: - BodyPart - BodyPartList - Folder - FolderAddress - FolderList - MimeBodyPart - MimeBodyPartList - MimeMessage - MimeMultipart - Multipart - NewsAddress - Session - Provider - Store - Transport 2002-06-13 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * The API now consists of the following components: -> Interfaces: - IAddress - IAddressList - IEncode -> Enumerations: - AddressType - ContentDisposition - Flags - FolderSortStyle - MessageSortStyle - ProviderType - RecipientType - TransferEncoding - ConnectionEventType - FolderEventType -> Classes: - Body - EMailAddress - EMailAddressList - Header - HeaderList - InternetAddress - InternetAddressList - Message - Part - PartList - FolderAddress - Folder - FolderList - ConnectionEventArgs - FolderEventArgs -> Delegates - ConnectionEventHandler - FolderEventHandler --- NEW FILE --- Last Updated: 2002-06-18 The design ideas for the API: I tried giving various shapes to the API - desgining from scratch, modifying the Java-Mail (TM) API and have finally come up with this one. This API is a blend of the two attempts. I first designed a few objects from the scratch, like IAddress, IAddressList and IEncode; ContentType, EMailAddress, InternetAddress, NewsAddress, Header, Header and the strcuture regarding the delegates and events. The objects of Folder, IPart, IMimePart, BodyPart, Multipart, MimeMultipart, Message, MimeMessage etc have been borrowed from the Java-Mail (TM) API and modified to suit the needs here. Several enumerations have also been invented. Some of these include AddressType, ContentDisposition, MessageFlags, FolderSortStyle, MessageSortStyle, ProviderType etc. Gaurav Vaish, <mastergaurav AT users DOT sf DOT net> Maitainer, CS Mail --- NEW FILE --- using System; using System.Collections; using System.IO; using System.Xml; using System.Xml.Xsl; using System.Xml.XPath; namespace com.mastergaurav.Utils { public class APIDisplay { public static string[] objTypes = { "interface", "enum", "class", "delegate" }; public static Hashtable names_and_type; public static void Main() { XslTransform xslt = new XslTransform(); xslt.Load("by_object.xsl"); XPathDocument doc = new XPathDocument("csMailAPI.xml"); XmlDocument objxml = new XmlDocument(); objxml.Load("csMailAPI.xml"); names_and_type = new Hashtable(); foreach(XmlNode node in objxml.FirstChild.ChildNodes) { names_and_type.Add(node.Attributes["name"].Value, node.Name); } foreach(string objName in names_and_type.Keys) { //System.Console.WriteLine("{0}\t: {1}", objName, (string)names_and_type[objName]); XmlWriter writer = new XmlTextWriter("html/" + objName + ".html", null); XsltArgumentList args = new XsltArgumentList(); args.AddParam("objName", "", objName); string type = (string)names_and_type[objName]; args.AddParam("objType", "", (type.ToUpper())[0] + type.Substring(1)); xslt.Transform(doc, args, writer); writer.Close(); } /* foreach(string objType in objTypes) { XmlWriter writer = new XmlTextWriter("html/" + objType + ".html", null); XsltArgumentList args = new XsltArgumentList(); args.AddParam("objType", "", objType); //args.AddParam("objName", "", "IPart"); xslt.Transform(doc, args, writer); writer.Close(); } //*/ } } } --- NEW FILE --- <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:output method="html" indent="yes"/> <xsl:param name="objType"/> <xsl:param name="objName"/> <xsl:template match="/"> <html> <head> <link rel="stylesheet" href="table.css" type="text/css"/> <link rel="stylesheet" href="styles.css" type="text/css"/> </head> <body> <center><img src="csmail.gif" alt="CS-Mail (C) Logo"/></center> <h2><xsl:value-of select="$objType"/>: <xsl:value-of select="$objName"/></h2> <table width="97%" border="0" cellpadding="5" cellspacing="0" align="center"> <tr> <td class="title">Declaration</td> <td class="title">Members</td> <xsl:if test="($objType != 'Enum')"> <td class="title">Methods</td> </xsl:if> </tr> <xsl:if test='$objType = "Interface"'> <xsl:for-each select="csmail/interface"> <xsl:sort select="name"/> <xsl:if test="(@name = $objName)"> <tr> <td class="data" width="27%" valign="top"> public interface <xsl:value-of select="@name"/> <xsl:choose> <xsl:when test="extends">: <xsl:for-each select="extends"> <xsl:sort select="interface"/> <xsl:value-of select="@interface"/>, </xsl:for-each> </xsl:when> </xsl:choose> </td> <td class="data" width="35%" valign="top"> <table cellpadding="5" cellspacing="0" border="0"> <xsl:for-each select="property"> <xsl:sort select="name"/> <tr> <td class="data"> <!-- <xsl:choose> <xsl:when test="visibility"> <xsl:value-of select="visibility"/> </xsl:when> <xsl:otherwise> public </xsl:otherwise> </xsl:choose> --> <xsl:value-of select="@type"/><xsl:text> </xsl:text> <xsl:value-of select="@name"/> { <xsl:value-of select="@allow"/> } </td> </tr> </xsl:for-each> </table> </td> <td class="data" width="35%" valign="top"> <table cellpadding="5" cellspacing="0" border="0"> <xsl:for-each select="method"> <xsl:sort select="name"/> <tr> <td class="data"> <!-- <xsl:choose> <xsl:when test="visibility"> <xsl:value-of select="visibility"/> </xsl:when> <xsl:otherwise> public </xsl:otherwise> </xsl:choose> --> <xsl:value-of select="@type"/><xsl:text> </xsl:text> <xsl:value-of select="@implementation"/><xsl:text> </xsl:text> <xsl:value-of select="@return"/><xsl:text> </xsl:text> <xsl:value-of select="@name"/><xsl:text>(</xsl:text> <xsl:for-each select="param"> <xsl:value-of select="@type"/><xsl:text> </xsl:text> <xsl:value-of select="@name"/>,<xsl:text> </xsl:text> </xsl:for-each> <xsl:text>);</xsl:text> </td> </tr> </xsl:for-each> </table> </td> </tr> </xsl:if> </xsl:for-each> </xsl:if> <xsl:if test='($objType = "Enum")'> <xsl:for-each select="csmail/enum"> <xsl:sort select="name"/> <xsl:if test="(@name = $objName)"> <tr> <td class="data" valign="top"><xsl:value-of select="@name"/></td> <td class="data"> </td> <td class="data"> </td> </tr> </xsl:if> </xsl:for-each> </xsl:if> <xsl:if test='contains($objType, "Class")'> <xsl:for-each select="csmail/class"> <xsl:sort select="name"/> <xsl:if test="(@name = $objName)"> <tr> <td class="data" valign="top">public class <xsl:value-of select="@name"/></td> <td class="data"> </td> <td class="data"> </td> </tr> </xsl:if> </xsl:for-each> </xsl:if> <xsl:if test='contains($objType, "Delegate")'> <xsl:for-each select="csmail/delegate"> <!-- <xsl:sort select="name"/>--> <xsl:if test="(@name = $objName)"> <tr> <td class="data" valign="top">public class <xsl:value-of select="@name"/></td> <td class="data"> </td> <td class="data"> </td> </tr> </xsl:if> </xsl:for-each> </xsl:if> </table> </body> </html> </xsl:template> </xsl:stylesheet> --- NEW FILE --- <csmail> <interface name="IAddress"> <property name="AddressType" type="AddressType" allow="get;"/> <method name="Equals" return="bool"> <param name="address" type="IAddress"/> </method> </interface> <interface name="IAddressList"> <property name="Count" type="int" allow="get;"/> <method name="Add" return="int"> <param name="address" type="IAddress"/> </method> <method name="AddAt" return="void"> <param name="index" type="int"/> <param name="address" type="IAddress"/> </method> <method name="Clear" return="void"/> <method name="GetAddress" return="IAddress"> <param name="index" type="int"/> </method> <method name="Remove" return="void"> <param name="address" type="Address"/> </method> <method name="RemoveAt" return="void"> <param name="index" type="int"/> </method> </interface> <interface name="IPart"> <property name="Content" type="Multipart" allow="get; set;"/> <property name="ContentType" type="ContentType" allow="get; set;"/> <property name="Description" type="string" allow="get; set;"/> <property name="Disposition" type="ContentDisposition" allow="get; set;"/> <property name="Filename" type="string" allow="get; set;"/> <property name="Headers" type="HeaderList" allow="get; set;"/> <property name="Size" type="int" allow="get;"/> <method name="AddHeader" return="int"> <param name="header" type="Header"/> </method> <method name="AddHeaders" return="int"> <param name="headers" type="HeaderList"/> </method> <method name="Write"> <param name="writer" type="TextWriter"/> </method> </interface> <interface name="IEncode"> <property name="ContentType" type="string" allow="get;"/> <property name="DecodedData" type="string" allow="get;"/> <property name="EncodedContent" type="string" allow="get;"/> <property name="TransferEncoding" type="TransferEncoding" allow="get; set;"/> <property name="ContentDisposition" type="ContentDisposition" allow="get; set;"/> </interface> <interface name="IMimePart"> <property name="ContentID" type="string" allow="get; set;"/> <property name="ContentLanguage" type="string" allow="get; set;"/> <property name="ContentMD5" type="string" allow="get; set;"/> <property name="Headers" type="HeaderList" allow="get; set;"/> <property name="Text" type="string" allow="set;"/> <property name="TransferEncoding" type="TransferEncoding" allow="get; set;"/> <extends interface="IPart"/> </interface> <enum name="AddressType"> <member name="EmailAddress"/> <member name="InternetAddress"/> <member name="NewsAddress"/> </enum> <enum name="ConnectionEventType"> <member name="Opened"/> <member name="Closed"/> <member name="Disconnected"/> </enum> <enum name="ContentDisposition"> <member name="Inline"/> <member name="Attachment"/> </enum> <enum name="FolderEventType"> <member name="Created"/> <member name="Deleted"/> <member name="Renamed"/> </enum> <enum name="FolderOpenMode"> <member name="ReadOnly"/> <member name="ReadWrite"/> </enum> <enum name="FolderSortStyle"> <member name="Default"/> <member name="Name"/> <member name="Size"/> </enum> <enum name="FolderType"> <member name="Folders"/> <member name="Message"/> <member name="Both"/> </enum> <enum name="MessageFlags"> <member name="None"/> <member name="Seen"/> <member name="Answered"/> <member name="Flagged"/> <member name="Deleted"/> <member name="Draft"/> <member name="Recent"/> <member name="UserDefined"/> </enum> <enum name="MessageSortStyle"> <member name="Default"/> <member name="From"/> <member name="Size"/> <member name="Date"/> <member name="Subject"/> </enum> <enum name="ProviderType"> <member name="Store"/> <member name="Transport"/> </enum> <enum name="ReciepientType"> <member name="To"/> <member name="Cc"/> <member name="Bcc"/> <member name="NewsGroup"/> </enum> <enum name="TransferEncoding"> <member name="Default"/> <member name="7Bit"/> <member name="8Bit"/> <member name="Base64"/> <member name="Binary"/> <member name="QuotedPrintable"/> <member name="UserDefined"/> <member name="UUEncode"/> </enum> <class name="Authenticator" type="abstract"> <property/> </class> <class name="BodyPart" type="abstract"> <property name="Parent" type="MultiPart" allow="get; set;"/> <implements> <interface name="IPart"/> </implements> </class> <class name="BodyPartList"> <method name="ctor"/> </class> <class name="ConnectionEventArgs"> <property name="EventType" type="ConnectionEventType" allow="get;"/> <method name="ctor"> <param name="eventType" type="ConnectionEventType"/> </method> </class> <class name="ContentType"> <property name="Parameters" type="ParameterList" allow="get;"/> <property name="PrimaryType" type="string" allow="get;"/> <property name="SubType" type="string" allow="get;"/> <method name="ctor"> <param name="primary" type="string"/> <param name="sub" type="string"/> </method> <method name="ctor"> <param name="primary" type="string"/> <param name="sub" type="string"/> <param name="parameters" type="ParameterList"/> </method> <method name="ToString" return="string"/> <method name="Equals" return="bool"> <param name="cType" type="ContentType"/> </method> <method name="Equals" return="bool"> <param name="cType" type="string"/> <param/> </method> <method name="Equals" return="bool" implementation="override"> <param name="obj" type="object"/> </method> </class> <class name="EMailAddress"> <property name="User" type="string" allow="get;"/> <property name="Host" type="string" allow="get;"/> <property name="Name" type="string" allow="get;"/> <method name="ctor"> <param name="user" type="string"/> <param name="host" type="string"/> </method> <method name="ctor"> <param name="name" type="string"/> <param name="user" type="string"/> <param name="host" type="string"/> </method> <implements> <interface name="IAddress"/> </implements> </class> <class name="EMailAddressList"> <method name="ctor"/> <method name="ctor"> <param name="emails" type="EmailAddress[]"/> </method> <method name="ctor"> <param name="list" type="EMailAddressList"/> </method> <method name="Item" return="EMailAddress"> <param name="index" type="int"/> </method> <method name="Add" return="int"> <param name="email" type="EMailAddress"/> </method> <method name="Add" return="int"> <param name="emails" type="EMailAddress[]"/> </method> <method name="Clear" return="void"/> <method name="IndexOf" return="int"> <param name="email" type="EMailAddress"/> </method> <method name="Item" return="EMailAddress"> <param name="index" type="int"/> </method> <method name="RemoveAt" return="EMailAddress"> <param name="index" type="int"/> </method> <method name="Remove" return="void"> <param name="email" type="EMailAddress"/> </method> <method name="ToString" return="string"> <param name="index" type="int"/> </method> <implements> <interface name="IAddressList"/> <interface name="IEnumerable"/> </implements> </class> <class name="Folder" type="abstract"> <property name="Count" type="int" allow="get;"/> <property name="Delimiter" type="char" implementation="abstract" allow="get;"/> <property name="Exists" type="bool" allow="get;"/> <property name="FolderType" type="FolderType" implementation="abstract" allow="get;"/> <property name="FullName" type="string" implementation="abstract" allow="get;"/> <property name="HasNewMessages" type="bool" implementation="abstract" allow="get;"/> <property name="IsOpen" type="bool" implementation="abstract" allow="get;"/> <property name="IsSubscribed" type="bool" implementation="abstract" allow="get; set;"/> <property name="Messages" type="Message[]" allow="get;"/> <property name="Mode" type="FolderOpenMode" allow="get;"/> <property name="Name" type="string" allow="get;"/> <property name="NewMessageCount" type="int" allow="get;"/> <property name="Parent" type="Folder" implementation="abstract" allow="get;"/> <property name="PermanentFlags" type="MessageFlags" implementation="abstract" allow="get;"/> <property name="Store" type="Store" allow="get;"/> <property name="SubFolders" type="Folder[]" implementation="abstract" allow="get;"/> <property name="SubscribedFolders" type="Folder[]" implementation="abstract" allow="get;"/> <property name="UnreadMessageCount" type="int" allow="get;"/> <property name="URL" type="URLName" allow="get;"/> <method name="ctor" visibility="protected"> <param name="store" type="Store"/> </method> <method name="AppendMessages" implementation="abstract"> <param name="msgs" type="Message[]"/> </method> <method name="Close" implementation="abstract"/> <method name="Create" implementation="abstract" return="bool"> <param name="type" type="FolderType"/> </method> <method name="Delete" implementation="abstract" return="bool"> <param name="recurse" type="bool"/> </method> <method name="Expunge" implementation="abstract" return="Message[]"/> <method name="Finalize" visibility="protected"/> <method name="GetFolder" implementation="abstract" return="Folder"> <param name="name" type="string"/> </method> <method name="GetMessage" implementation="abstract" return="Message"> <param name="index" type="int"/> </method> <method name="GetMessages" return="Message[]"> <param name="indices" type="int[]"/> </method> <method name="GetMessages" return="Message[]"> <param name="start" type="int"/> <param name="stop" type="int"/> </method> <method name="Open" implementation="abstract"> <param name="mode" type="FolderOpenMode"/> </method> <method name="RenameTo" implementation="abstract" return="bool"> <param name="newFolder" type="Folder"/> </method> <method name="ToString" implementation="override" return="string"/> </class> <class name="FolderAddress"> <property name="Protocol" type="string" allow="get;"/> <property name="Username" type="string" allow="get;"/> <property name="Password" type="string" allow="get;"/> <property name="Hostname" type="InternetAddress" allow="get;"/> <property name="Foldername" type="string" allow="get;"/> <method name="ctor"/> <method name="ctor"> <param name="protocol" type="string"/> <param name="username" type="string"/> <param name="password" type="string"/> </method> <method name="ctor"> <param name="protocol" type="string"/> <param name="username" type="string"/> <param name="password" type="string"/> <param name="hostname" type="InternetAddress"/> <param name="foldername" type="string"/> </method> </class> <class name="FolderEventArgs"> <property name="Folder" type="Folder" allow="get;"/> <property name="NewFolder" type="Folder" allow="get;"/> <property name="EventType" type="FolderEventType" allow="get;"/> <method name="ctor"> <param name="folder" type="Folder"/> <param name="eventType" type="FolderEventType"/> </method> <method name="ctor"> <param name="folder" type="Folder"/> <param name="newFolder" type="Folder"/> </method> </class> <class name="FolderList"> <method name="ctor"/> <method name="ctor"> <param name="folders" type="Folder[]"/> </method> <method name="Item" return="Folder"> <param name="index" type="int"/> </method> <method name="Add" return="int"> <param name="folder" type="Folder"/> </method> <method name="Add" return="int"> <param name="folders" type="Folder[]"/> </method> <method name="Add" return="int"> <param name="folders" type="FolderList"/> </method> <method name="Delete" return="int"> <param name="index" type="int"/> </method> <method name="Delete" return="int"> <param name="indices" type="int[]"/> </method> <method name="Count" return="int"/> <method name="Sort"> <param name="order" type="FolderSortStyle"/> </method> </class> <class name="Header"> <property name="Name" type="string" allow="get;"/> <property name="Value" type="string" allow="get;"/> <property name="Values" type="string[]" allow="get;"/> <method name="ctor"> <param name="name" type="string"/> <param name="value" type="string"/> </method> <method name="ctor"> <param name="name" type="string"/> <param name="values" type="string[]"/> </method> </class> <class name="HeaderList"> <property name="Count" type="int" allow="get;"/> <method name="ctor"> <param name="headers" type="Header[]"/> </method> <method name="ctor"> <param name="list" type="HeaderList"/> </method> <method name="Add" return="void"> <param name="header" type="Header"/> </method> <method name="Exists" return="bool"> <param name="name" type="string"/> </method> <method name="Exists" return="bool"> <param name="header" type="Header"/> </method> <method name="Item" return="string[]"> <param name="header" type="Header"/> </method> <method name="Remove" return="void"> <param name="header" type="Header"/> </method> <method name="Remove" return="void"> <param name="name" type="string"/> </method> <implements> <interface name="IEnumerable"/> </implements> </class> <class name="InternetAddress"> <property name="Value" type="string" allow="get;"/> <method name="ctor"> <param name="value" type="string"/> </method> <implements> <interface name="IAddress"/> </implements> </class> <class name="InternetAddressList"> <property name="Empty" type="InternetAddressList" allow="get;"/> <method name="ctor"/> <method name="ctor"> <param name="addresses" type="InternetAddress[]"/> </method> <method name="ctor"> <param name="list" type="InternetAddressList"/> </method> <method name="Item" return="InternetAddress"> <param name="index" type="int"/> </method> <method name="Add" return="int"> <param name="address" type="InternetAddress"/> </method> <method name="Add" return="int"> <param name="addresses" type="InternetAddressList"/> </method> <method name="Clear" return="void"/> <method name="Set" return="void"> <param name="index" type="int"/> <param name="address" type="InternetAddress"/> </method> <method name="IndexOf" return="int"> <param name="address" type="InternetAddress"/> </method> <method name="FindByValue" return="int"> <param name="address" type="string"/> </method> <method name="Item" return="InternetAddress"> <param name="index" type="int"/> </method> <method name="Remove" return="void"> <param name="address" type="InternetAddress"/> </method> <method name="RemoveAt" return="InternetAddress"> <param name="index" type="int"/> </method> <method name="RemoveFirst" return="InternetAddress"> <param name="address" type="string"/> </method> <method name="Remove" return="InternetAddress[]"> <param name="addresses" type="string[]"/> </method> <method name="ToString" return="string"> <param name="index" type="int"/> </method> <implements> <interface name="IAddressList"/> <interface name="IEnumerable"/> </implements> </class> <class name="Message" type="abstract"> <property name="Flags" type="MessageFlags" implementation="abstract" allow="get; set;"/> <property name="Folder" type="Folder" implementation="virtual" allow="get;"/> <property name="From" type="EMailAddressList" implementation="abstract" allow="get; set;"/> <property name="Headers" type="HeaderList" implementation="virtual" allow="get; set;"/> <property name="IsExpunged" type="bool" implementation="virtual" allow="get; set;"/> <property name="PropertyFolder" type="Folder" allow="get; set;" visibility="protected"/> <property name="PropertyIndex" type="int" allow="get; set;" visibility="protected"/> <property name="PropertySession" type="Session" allow="get; set;" visibility="protected"/> <property name="ReceivedDate" type="Date" implementation="abstract" allow="get; set;"/> <property name="Recipients" type="IAddressList" implementation="abstract" allow="get;"/> <property name="ReplyTo" type="EMailAddressList" implementation="virtual" allow="get;"/> <property name="SentDate" type="Date" implementation="abstract" allow="get; set;"/> <property name="Subject" type="string" implementation="abstract" allow="get; set;"/> <method name="ctor" visibility="protected"/> <method name="ctor" visibility="protected"> <param name="folder" type="Folder"/> <param name="index" type="int"/> </method> <method name="ctor" visibility="protected"> <param name="session" type="Session"/> </method> <method name="AddFrom" type="abstract"> <param name="address" type="EMailAddress"/> </method> <method name="AddFrom" type="abstract"> <param name="addresses" type="EMailAddressList"/> </method> <method name="AddRecipient" type="abstract"> <param name="recipientType" type="RecipientType"/> <param name="address" type="EMailAddress"/> </method> <method name="AddRecipeints" type="abstract"> <param name="recipientType" type="RecipientType"/> <param name="addresses" type="EMailAddressList"/> </method> <method name="AddRecipient" type="abstract"> <param name="newsAddress" type="NewsAddress"/> </method> <method name="AddRecipients" type="abstract"> <param name="newsAddresses" type="NewsAddressList"/> </method> <method name="GetReplyMessage" type="abstract" return="Message"> <param name="toAll" type="bool"/> </method> <method name="GetRecipients" type="abstract" return="IAddressList"> <param name="type" type="RecipientType"/> </method> <method name="IsSet" return="bool"> <param name="flag" type="MessageFlag"/> </method> <method name="SaveChanges" type="abstract"/> <implements> <interface name="IPart"/> </implements> </class> <class name="MimeBodyPart"> <property name="Content" type="byte[]" allow="get; set;"/> <property name="Headers" type="HeaderList" allow="get; set;"/> <method name="ctor"/> <method name="ctor"> <param name="reader" type="TextReader"/> </method> <method name="ctor"> <param name="headers" type="HeaderList"/> <param name="content" type="byte[]"/> </method> <implements> <interface name="IMimePart"/> </implements> <extends class="BodyPart"/> </class> <class name="MimeBodyPartList"/> <class name="MimeMessage"> <property name="Index" type="int" allow="get;"/> <property name="Content" type="byte[]" allow="get; set;" visibility="protected"/> <property name="Flags" type="MessageFlags" allow="get; set;"/> <method name="ctor" visibility="protected"> <param name="folder" type="Folder"/> <param name="index" type="int"/> <param name="is" type="InputStream"/> </method> <method name="ctor" visibility="protected"> <param name="folder" type="Folder"/> <param name="index" type="int"/> </method> <method name="ctor" visibility="protected"> <param name="folder" type="Folder"/> <param name="headers" type="HeaderList"/> <param name="content" type="byte[]"/> <param name="index" type="int"/> </method> <method name="ctor"> <param name="session" type="Session"/> </method> <method name="ctor"> <param name="session" type="Session"/> <param name="is" type="InputStream"/> </method> <method name="GetContent" return="object"/> <method name="UpdateHeaders" visibility="protected"/> <method name="SaveChanges" visibility=""/> <method name="WriteTo"> <param name="writer" type="TextWriter"/> </method> <implements> <interface name="IMimePart"/> </implements> <extends class="Message"/> </class> <class name="MimeMultipart"> <property name="Count" type="int" allow="get;" implementation="override"/> <property name="ContentType" type="ContentType" allow="get;"/> <method name="ctor"/> <method name="ctor"> <param name="subType" type="string"/> </method> <method name="Item" return="BodyPart"> <param name="index" type="index"/> </method> <method name="Item" return="BodyPart"> <param name="contentID" type="string"/> </method> <method name="UpdateHeaders"/> <extends class="Multipart"/> </class> <class name="MimeUtils"> <method name="Decode" return="InputStream"> <param name="is" type="InputStream"/> <param name="encoding" type="string"/> </method> <method name="DecodeText" return="string"> <param name="eText" type="string"/> </method> <method name="DecodeWord" return="string"> <param name="eText" type="string"/> </method> <method name="Encode" return="OutputStream"> <param name="os" type="OutputStream"/> <param name="encoding" type="string"/> </method> <method name="EncodeText" return="string"> <param name="text" type="string"/> </method> <method name="EncodeText" return="string"> <param name="text" type="string"/> <param name="charset" type="string"/> <param name="encoding" type="string"/> </method> <method name="EncodeWord" return="string"> <param name="word" type="string"/> </method> <method name="EncodeWord" return="string"> <param name="word" type="string"/> <param name="charset" type="string"/> <param name="encoding" type="string"/> </method> <method name="Quote" return="string"> <param name="word" type="string"/> <param name="specials" type="string"/> </method> </class> <class name="Multipart" type="abstract"> <property name="Parent" type="IPart" allow="get; set;"/> <property name="Count" type="int" allow="get; set;" implementation="virtual"/> <method name="Add" return="int"> <param name="part" type="BodyPart"/> </method> <method name="Add" return="int"> <param name="part" type="BodyPart"/> <param name="index" type="int"/> </method> <method name="Add" return="int"> <param name="parts" type="BodyPartList"/> </method> <method name="Item" return="BodyPart"> <param name="index" type="int"/> </method> <method name="Remove" return="int"> <param name="part" type="BodyPart"/> </method> <method name="Remove" return="int"> <param name="index" type="int"/> </method> <method name="WriteTo" type="abstract"> <param name="write" type="TextWriter"/> </method> <method name="ContentTypeAsString" return="string"/> </class> <class name="NewsAddress"> <property name="Hostname" type="string" allow="get;"/> <property name="Newsgroups" type="string[]" allow="get;"/> <property name="Newsgroup" type="string" allow="get;"/> <method name="ctor"> <param name="hostname" type="string"/> <param name="newsgroup" type="string"/> </method> <method name="ctor"> <param name="hostname" type="string"/> <param name="newsgroups" type="string[]"/> </method> <method name="Add"> <param name="newsgroup" type="string"/> </method> <implements> <interface name="IAddress"/> </implements> </class> <class name="Parameter"> <property name="Name" type="string" allow="get;"/> <property name="Value" type="string" allow="get;"/> <method name="ctor"> <param name="name" type="string"/> <param name="value" type="string"/> </method> </class> <class name="ParameterList"/> <class name="Provider"> <property name="ClassName" type="string" allow="get;"/> <property name="Protocol" type="string" allow="get;"/> <property name="Type" type="ProviderType" allow="get;"/> <property name="Vendor" type="string" allow="get;"/> <property name="Version" type="string" allow="get;"/> <method name="ToString" return="string"/> <method name="ctor" visibility="internal"/> </class> <class name="Service" type="abstract"> <property name="URL" type="URLName" allow="get;"/> <property name="Connected" type="bool" allow="get;"/> <property name="PropertyConnected" type="bool" allow="get; set;" visibility="protected"/> <property name="PropertyURL" type="URLName" allow="get; set;" visibility="protected"/> <property name="PropertySession" type="Session" allow="get; set;" visibility="protected"/> <property name="PropertyDebug" type="bool" allow="get; set;" visibility="protected"/> <method name="ctor" visibility="protected"> <param name="session" type="Session"/> <param name="url" type="URLName"/> </method> <method name="Close"/> <method name="Connect"/> <method name="Connect"> <param name="hostname" type="InternetAddress"/> <param name="username" type="string"/> <param name="password" type="string"/> </method> <method name="Connect" type="virtual"> <param name="hostname" type="InternetAddress"/> <param name="port" type="int"/> <param name="username" type="string"/> <param name="password" type="string"/> </method> <method name="Finalize" visibility="protected"/> </class> <class name="Session" type="sealed"> <property name="Properties" type="Properties" allow="get;"/> <property name="Provider" type="Provider" allow="get; set;"/> <property name="Providers" type="Provider[]" allow="get; set;"/> <property name="Store" type="Store" allow="get;"/> <property name="Transport" type="Transport" allow="get;"/> <property name="Debug" type="bool" allow="get; set;"/> <method name="ctor" visibility="private"/> <method name="GetDefaultInstance" implementation="static" return="Session"> <param name="properties" type="Properties"/> <param name="authenticator" type="Authenticator"/> </method> <method name="GetInstance" implementation="static" return="Session"> <param name="properties" type="Properties"/> <param name="authenticator" type="Authenticator"/> </method> <method name="GetFolder" return="Folder"> <param name="url" type="URLName"/> </method> <method name="GetProperty" return="string"> <param name="name" type="string"/> </method> <method name="GetTransport" return="Transport"> <param name="address" type="IAddress"/> </method> <method name="GetTransport" return="Transport"> <param name="provider" type="Provider"/> </method> <method name="GetTransport" return="Transport"> <param name="protocol" type="string"/> </method> <method name="GetTransport" return="Transport"> <param name="url" type="URLName"/> </method> </class> <class name="Store" type="abstract"> <property name="DefaultFolder" type="Folder" allow="get;" implementation="abstract"/> <method name="ctor"> <param name="session" type="Session"/> <param name="url" type="URLName"/> </method> <method name="Item" return="Folder" type="abstract"> <param name="folderName" type="string"/> </method> <method name="Item" return="Folder" type="abstract"> <param name="url" type="URLName"/> </method> <extends class="Service"/> </class> <class name="Transport" type="abstract"> <method name="ctor"> <param name="session" type="Session"/> <param name="url" type="URLName"/> </method> <method name="Send" implementation="static" type="virtual"> <param name="message" type="Message"/> </method> <method name="Send" implementation="static" type="virtual"> <param name="message" type="Message"/> <param name="addresses" type="IAddressList"/> </method> <method name="SendMessage" implementation="" type="abstract"> <param name="message" type="Message"/> <param name="addresses" type="IAddressList"/> </method> <extends class="Service"/> </class> <class name="URLName"> <property name="Protocol" type="string" allow="get;"/> <property name="Host" type="string" allow="get;"/> <property name="Port" type="int" allow="get;"/> <property name="File" type="string" allow="get;"/> <property name="Username" type="string" allow="get;"/> <property name="Password" type="string" allow="get;"/> <method name="ctor"> <param name="url" type="string"/> </method> <method name="ctor"> <param name="protocol" type="string"/> <param name="host" type="string"/> <param name="port" type="int"/> <param name="file" type="string"/> <param name="username" type="string"/> <param name="password" type="string"/> </method> <method name="Equals" return="bool"> <param name="obj" type="object"/> </method> <method name="GetHashCode" return="int"/> <method name="operator =" return="bool"> <param name="obj" type="object"/> </method> <method name="ParseString" visibility="protected"> <param name="url" type="string"/> </method> <method name="ToString" return="string"/> </class> <delegate name="ConnectionEventHandler"> <param name="sender" type="object"/> <param name="e" type="ConnectionEventArgs"/> </delegate> <delegate name="FolderEventHandler"> <param name="sender" type="object"/> <param name="e" type="FolderEventArgs"/> </delegate> </csmail> --- NEW FILE --- CSC = csc.exe /nologo DEBUG = /debug- BIN = by_object.exe all: $(BIN) $(BIN): by_object.cs by_object.xsl csMailAPI.xml $(CSC) $(DEBUG) /out:$(BIN) by_object.cs clean: rm -f *~ .*.swp rm -f $(BIN) rm -f html/*.html web: $(BIN) $(BIN) |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:42:48
|
Update of /cvsroot/csmail/csmail/docs/html In directory usw-pr-cvs1:/tmp/cvs-serv23106/docs/html Added Files: backgrd.jpg csmail.gif styles.css table.css Log Message: 2002-02-24 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * docs/* --- Document files --- NEW FILE --- ÿØÿà Ðæd/ÑðVb¦ôXÙ£$åÙW:Ó5°BÖhswOYONþ¼Ó#üxÿ Ñb¶Ù*°¡g¥âp) ¨ ?®·áÍzدXÒQ~rQ'N3¢>Có^Ñ£ðfA6¡®î=bÒðªBÜøQÍOÒÜhÃÑø¦¡ÙènQ~æ¿ÒÁÓμ³z`_eÿ (¤Íx e%H)á,L^£{=bBmÑzhÖâ-ÊVÁ%âÑ(CI Y´ ZÇÃKÂóá:- hhç #ÁÜ^ BÛðò`i0O³9Ýcý/Ñié¸+ϦÓeäEæuÈgð:dIÎê+ÔFß¡I7ôËr3(ô¶ Þ@òÈ µI6±ÿ ¡wÒA© Í CÏà¸gXZEh Ôd/à´¤"eS¢9á-8z,U6v×ÿ òÀØ+C,¿FoÁYÐ-cf4do2d ^éÿ fä¤/ÂèIA¯·á7ýé.~Ùk&H/v$hù¤ôV'>(Äu§á´$úBº9g£ÒÓéEeD¡ß ºgé+I£RÔAÅ×Q5ôvW=þ |¿ÃA8é×ÍÆ^"QQ)ëý ý0R¼%oE~¨d]ãMñ dÕâ.¿«ÀõiõZË §ÞÎ[, Kô¿1>¢¦r3µ çÂu[@ÐÑÏ G¹¼( ·á?äÀ:Ò`fsºÇú_¢ ÓÓpWL/§4Ë/ÉÌê3ÏàtÈÔW©(I¢EøÂ¨52tý5P[4 e%H)á,L^£{=bBmÑzhÖâ-ÊVÁ%âÑ(CI Y´ 'BýþMþƦ³x*B,*èQ±ÒAÌ÷G,43Z/ñ(Dÿ &~¼ï oÐϤúe¹IFrÀ`óà´ªÁ[ÐP¹©&Ö0ú ¼&2¤sÝà«£:þ§7òá¿l·9kú*¡a°¶èÒ:bàw fÉé @Ué¯ðºÓ,}9Ჩ£^l_¡kÂw</úo½ôê C~ °U¾ HT°¦h*Ã:ÂÐú+@T6£! Ý!k(ZÎ h\hÑÃÑ`©³¶¸§úiäü59B0Ý`³ZÌBßmDú¿ü7^#¥ùÏ´4~ ?Ó#fãü)#aD¾Mø;Á(@Bª -¥ÁXô¬ î Ó#ÒðzaÍ]5Aez<úGÓ¦V /HLixJå¢ÔZV7D'Ël±ºlÐý¹øJ¶YHêæü*ÉÆý:áê3Tpß(Ñ_ÿÙ --- NEW FILE --- GIF89aE7 ÷ëÆVÐuHîÞ¿goº¼ ó ©W_{ï@Òê<ÁÐQ(ßQñÄz¥@tþGaC|¡Zë Âý=xÚ}ä¢ic¨èÐä Q`=i $@¨±µñ êôh D@ ä[nd¤cH¤$NB@H)&Cxw ¼çsôgÅBVxWFC× ÚcH $pÈ `gö Tꩦ¥ºj«×yë¬OÚJ-fÞñZ¯À Kl`ÚT8G ¥ 0 dªi£dÐ(0p UQ^m£H.ÃìÌ4Û¼ÎÞéL Ô|©G³Óehyx×I8°ÀÆ µéÝxA ÁoFð eß*À!¦ùC$ÀðZVÿC%-ß¼iÏÞôPgë{Úã÷ÀÇ;¯|çK_Ö×¾÷Åo~°C°ÄÌl¨A\æÓlã#¨ &ºÂ;Îê` ènUTÁ(ß]@®0M`ð8à ëR c¬qð@/ ` fQä$~¤ iHD&dtÌ##9ÉJþɤ9éÉ_r¥<e*WÇyGr¼¦Ç¸ A Â4¦PÁ Là zÐDfet5Ȩ6)°°DP8x ¦©Dxà p6à|KJD ä>çÈ©oZXÛJX .° B x=`@0y Eq b;ÐaÐ*àp{þõ v-°J@2ðØi!HxTШ8x Cp+|H>gWA r9ÒѤ1VWé¨`À>*PqàU*`´%ÿt1p`PM°R² @Ê`© ðÇp P5[e à"Y p¦Ñ k`Fp²XcñwUÿÀG°A`k'0Êp\ d`>P Þ:Ð(çdS*¸!9°30 ''è æg gD¢t©(Ñ ª;Ð$ G^Gté 䡽Btpõ'à£U7O0/°·ca`" E@ P8߸ u´(@ȬÀÞaK æ(ÓY ¦f* Ð ¸è&¸x¸»¸û¸c:¹k«¹Æ# 0 0¦A, GÿÜ'MºLZu»|© ØrWðb44ÆÔ¶¦1L 3Ði@§ 6(°9£Ç(P ÈLËs( 0ÿ j" Hp+B&ÐÅé\!JÍ º:/0OcFN@Kò[Ãê© ª®ÿ°-Û´]n·Ûí¼Û½~ðÛÁ=ÜÅ}ÜÜË=ÍýÜÑ=M @Ýn`ÝØ} JÐ<x ÑõG@GÐÛBë ªãBÉ..0`S0Õ "*9ÁáÀ@¬P¡b ¬£YÓæºuê|rÓçÏTÞ(±aI %!bÂ.u* hÀapéÂD A2tQbÁ3nì¨îcÈ%O¦\ÙòeÌ@nQW¢*M"uêôh¢(=¬pÁ!_&NBR%7F\ à1ÐA¤IÈYÐÌ*Utø¨à 0 ¡¯6 ,H!@D#¸àP` -ÄPC³À "0ºklà¢#Z ,`Ëä°+zX¢(x¯&tB(ȨbNØà "ÁVh": $d0A C:íÀ¡¤ë  A04ô6AT²|@¾hC[pA:Àa"(k&"ÜpÄg¼*kz`"]<p!na$h 6BjØ` jtÚ!è<áaÈ YèBÖkÀà-` ÆD LÕ¦ `EÐP è µ!DA2|& è]XâÁ²,70 ¸¯ »èA^íF ²Ù«mn±©!HBIL (x B °@-hX \@#ó $¤¬y~k¼ò°Z ¬x(ºY©¥¹éMS Ó®W¨G=¹º®©^u«kYÓZ¯¶V®uÍk_[ØÄ66²ÍlgC[ÚÔ×ÿµé%FÞ@ 0@±FZ H?Ñ¡Le_Öð<â0a @ÀA%&*!@içÀG` Rð ÄSvx-x@áêà À <h:ð¿2¯9(#¸%àÀ*R$$)h! Ø"uè¢j¡;°èëË>íã>ï?1¿Oùò;¿H¿õ4p¿?ß¿ ?û+üÓ?þó? LøH$P'P.uh"Ð$X| È øãbÌq¦ð(s ØpM (¯õ±! ¬#uЫÁ£h¥ÁÓ¹qQE Q^HÈ ×â×z½×|-@ð*h?=ÄãY3 x QsC ±dä ¸Yuð^ ÐÐ¥HÂÎá0ã%° а ð äJξKÎd$a EòäúxPQ.åSNåUÞV.axeÐeZÖ[ÆåØå^Ö+]fufb6fdVffvfhöÚ]-h(°ht.PSu ÿiH À>p¤#$IúÕx :&²æ,oY²$øÞi½ Ànhíîîï~àðîñ.ïôVo®nooù¦oû»,@¯jZ(/èYè±<ñc¸H3`i=qZÊvü(È&F_0p-ÐzI°}=%8×¢[%hPhh>p0 1p*ö£T¸ÿø(iH$X%áÞª¬uPÈq;p(øû«*X"@'@x,ßò.ÿò0ó2?sP )ÿHY¶@  'o h.d`SØ LvÿØó 4Ph õ(Kè(BÂ< 0<Àæ BÀ"à`!rè!"ÀÄ@ÃWø P "8@¸C.ªX/ñÃ>¸pÁȹ8Ðr0pÁ8ÀÃhPÔQ6( 4 >èÐ PñÞEàðÃU$±AeÁ/ÜÄaXq$\ K¬±È*ë³ÎB+-µÖb+¶Üz®¸ä®ºìºojóÖ{¯ùîÛÿï¿E<pÁ è#äB ¸@K:-MØÐÝwü)`L(C,EWLà ´tërz°mV¬[(øç"Òñ@ ;,¡D»´`¶M ÌPÐ@DpB C¬0#`À| x *ð8° FD¢èÄ,N±W|b·ØÅ13pL ÞBRÀÔJ ôã@´v`# $88ÁLð?`@ Hú:Ð/#8ô, xIëhuC ãVp¼àÛ ¦p°õ A+ ÁµPV°+|áo¸Ã@R"Üm5x /0Ý $pA:0) j}ë&äú»¶¯¯-lbÙ)P6ílhKÚÖuµ]n{ÜÌ[s" 3'¤à\¢L2Ô8S(BÀ»B0 Á x0 QqÌÃ!óH&:'- $ý ¼ 9ÀÔ#& ¤¹ tÄöÝcKã T lÊ Ü crÂÄrºX:'qFçt2MÆY'«`DvÎÍðç1ÊxNîx sçy&¦RjF@¨{ÖÙi*htâÎqÚ}B'ßÀoÂ^dçðhöfô¡ Xx ÁÍ4´À ì\@BFyj¦¹çD"':ç&¨zvÍPZDDM n²ÿ%¤äèf§Dôh*Ç8èx#{çtþ¦.Êpé l 4UNU'RNy Y`~z&NPÔé#pº&LÈeàD¦âVÆL`©6MZG2Oê®Þéª',íiMê¼| *¦Ö'ê©¢:*£òé|JF¤ÚĤ*e*⨥V¡ZǦ^ê«bP¬Úê£BÜxÀÈUÄÛÍ|ç¡"êjNìªzêÄ ê£*çr2k@&ë:ëÎM¨6i®Îç&',5ÍFߦbªj+Òg*¥¾+¼Æ«¼Î+½Öñ«½Þk¼Çâ&>PÈ --- NEW FILE --- /* (C) Gaurav Vaish, 2002 */ body { background-image: url("backgrd.jpg"); font-size: 12px; font-family: Georgia, Arial, Verdana, Courier New; } a, a:visited { color: #0000ff; text-decoration: none; font-family: Arial, Courier New; font-size: 12px; } a:active, a:hover { color: #ff0000; text-decoration: underline; font-family: Arial, Courier New; font-size: 12px; } li { margin-bottom: 5px; text-indent: 0px; text-align: justify; } .command { font-family: Courier New, Courier, Arial; font-size: 13px; } .warning { font-family: Verdana, Arial, Courier New; font-size: 13px; color: #ff0000; font-weight: 600; font-style: italic; /* background-color: #cee7ff; */ } --- NEW FILE --- @charset "iso-8859-1"; /* author: Gaurav Vaish */ /* Creation date: 02-12-2001 */ td.warn { font-family: Arial, Courier New; font-size: 12px; background-color: #cee7ff; } td.content { font-family: Courier New, Times New Roman, Arial; font-size: 11px; background-color: #ffffff; } td.title { text-align: left; background-color: #d8d8e0; font-size: 12px; font-family: Courier New, Times New Roman, Arial; } td.query { font-family: Georgia, Verdana, Arial; font-size: 13px; background-color: #ffffff; text-indent: 20; } td.band { font-family: Georgia, Verdana, Arial; font-size: 14px; text-indent: 10; background-color: #c3c3c3; /* text-align: right; */ } td.songTitle { font-family: Georgia, Verdana, Arial; font-size: 14px; text-indent: 20; background-color: #e7e7e7; } td.data { font-family: Georgia, Verdana, Helvetica, Arial, Courier; font-size: 14px; background-color: #ffffff; text-indent: 20; } td.date { text-align: right; background-color: #d8d8e0; font-size: 12px; font-family: Times New Roman, Arial; } |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:40:43
|
Update of /cvsroot/csmail/csmail/nunit/src/NUnitCore In directory usw-pr-cvs1:/tmp/cvs-serv22219/NUnitCore Log Message: Directory /cvsroot/csmail/csmail/nunit/src/NUnitCore added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:40:43
|
Update of /cvsroot/csmail/csmail/nunit/src/NUnitConsole In directory usw-pr-cvs1:/tmp/cvs-serv22219/NUnitConsole Log Message: Directory /cvsroot/csmail/csmail/nunit/src/NUnitConsole added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:40:23
|
Update of /cvsroot/csmail/csmail In directory usw-pr-cvs1:/tmp/cvs-serv21692 Added Files: AUTHORS COPYING ChangeLog Maintainers README makefile Log Message: 2002-07-24 Gaurav Vaish * Root Files: Standard metadata files... --- NEW FILE --- API Definitions: Gaurav Vaish <mastergaurav AT users DOT sf DOT net> Class Libraries Source: Gaurav Vaish <mastergaurav AT users DOT sf DOT net> Special Thanks to: * Ajay Kumar Dwivedi <ajayd AT users DOT sf DOT net> - For his initial work on monomail and he made public a small API for EMailAddress and EMailAddressList, and which helped me design the current form of the IAddress and the related classes. * Jeffrey Stedfast <fejj AT ximian DOT com> - For his invaluable suggestions on design and improvisation of the API when in infancy. --- NEW FILE --- The CSMail is released under the GNU-GPL License (version 2). All the copying business and using of the library, henceforth, shall be under the norms as mentioned in the License. A copy of the same has been included below for convenience. Gaurav Vaish Maintainer, CS Mail ----------------------------------------------------------------------------- GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ----------------------------------------------------------------------------- --- NEW FILE --- 2002-06-20 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * Created a local CVS repository on my computer. Will directly put the directory structure at the SourceForget CVS. 2002-06-13 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * Added the following files: - AUTHORS - ChangeLog - README - docs/csMailAPI.xml - nant/* - nunit/* * Created the following directories: - src - test --- NEW FILE --- Birth-2002 Gaurav Vaish mastergaurav AT users DOT sf DOT net << Postal Address coming soon >> --- NEW FILE --- The repository (or archive) contains the CS-Mail API. The layout: docs/ | |-> Documents. API definitions. | src/ | |-> Source code of classes. | test/ | |-> Tests for the classes. Bases on NUnit | nant/ | |-> NAnt source. Used for building the classes. | nunit/ | |-> NUnit source. Need to recompile it because of various | versions of dotNet with various hackers (if I get them) ############################# tools/ | |-> Some useful tools used. --- NEW FILE --- #DIRS = nant src DIRS = src default: all all: @for i in $(DIRS); do \ (cd $$i; make) || exit 1; \ done nant: cd nant; make nunit: cd nunit; make csmail: cd src; make clean: @for i in $(DIRS); do \ (cd $$i; make clean) || exit 1; \ done rm -f *~ .*~ |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:39:11
|
Update of /cvsroot/csmail/csmail/nunit/src In directory usw-pr-cvs1:/tmp/cvs-serv21223/src Log Message: Directory /cvsroot/csmail/csmail/nunit/src added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:30:03
|
Update of /cvsroot/csmail/csmail/nant/src/Util In directory usw-pr-cvs1:/tmp/cvs-serv14608/src/Util Log Message: Directory /cvsroot/csmail/csmail/nant/src/Util added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:30:03
|
Update of /cvsroot/csmail/csmail/nant/src/Tasks In directory usw-pr-cvs1:/tmp/cvs-serv14608/src/Tasks Log Message: Directory /cvsroot/csmail/csmail/nant/src/Tasks added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:30:02
|
Update of /cvsroot/csmail/csmail/nant/src/Attributes In directory usw-pr-cvs1:/tmp/cvs-serv14608/src/Attributes Log Message: Directory /cvsroot/csmail/csmail/nant/src/Attributes added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:30:00
|
Update of /cvsroot/csmail/csmail/nant/doc In directory usw-pr-cvs1:/tmp/cvs-serv14608/doc Log Message: Directory /cvsroot/csmail/csmail/nant/doc added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:30:00
|
Update of /cvsroot/csmail/csmail/nant/src In directory usw-pr-cvs1:/tmp/cvs-serv14608/src Log Message: Directory /cvsroot/csmail/csmail/nant/src added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:27:16
|
Update of /cvsroot/csmail/csmail/docs/html In directory usw-pr-cvs1:/tmp/cvs-serv12404/html Log Message: Directory /cvsroot/csmail/csmail/docs/html added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:23:54
|
Update of /cvsroot/csmail/csmail/src In directory usw-pr-cvs1:/tmp/cvs-serv11020/src Log Message: Directory /cvsroot/csmail/csmail/src added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:23:53
|
Update of /cvsroot/csmail/csmail/docs In directory usw-pr-cvs1:/tmp/cvs-serv11020/docs Log Message: Directory /cvsroot/csmail/csmail/docs added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:23:53
|
Update of /cvsroot/csmail/csmail/nunit In directory usw-pr-cvs1:/tmp/cvs-serv11020/nunit Log Message: Directory /cvsroot/csmail/csmail/nunit added to the repository |
From: Gaurav V. <mas...@us...> - 2002-07-24 10:23:53
|
Update of /cvsroot/csmail/csmail/nant In directory usw-pr-cvs1:/tmp/cvs-serv11020/nant Log Message: Directory /cvsroot/csmail/csmail/nant added to the repository |