From: Chris M. <cm...@us...> - 2007-05-03 18:28:41
|
User: cmicali Date: 07/05/03 11:24:12 Added: etc/andromda-dotnet/AndroMDA.MSBuild/AndroMDA.MSBuild.Tasks AndroMDA.MSBuild.Tasks.csproj AndroMDA.cs ConfigFile.cs Maven2Proxy.cs etc/andromda-dotnet/AndroMDA.MSBuild/AndroMDA.MSBuild.Tasks/Properties AssemblyInfo.cs etc/andromda-dotnet/AndroMDA.MSBuild AndroMDA.MSBuild.sln Log: Revision Changes Path 1.1 plugins/etc/andromda-dotnet/AndroMDA.MSBuild/AndroMDA.MSBuild.Tasks/AndroMDA.MSBuild.Tasks.csproj Index: AndroMDA.MSBuild.Tasks.csproj =================================================================== <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProductVersion>8.0.50727</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{E9C87326-E6E1-4F0D-B75F-D72C1D6DAA36}</ProjectGuid> <OutputType>Library</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>AndroMDA.MSBuild.Tasks</RootNamespace> <AssemblyName>AndroMDA.MSBuild.Tasks</AssemblyName> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Release\</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> <Reference Include="Microsoft.Build.Framework" /> <Reference Include="Microsoft.Build.Utilities" /> <Reference Include="System" /> <Reference Include="System.Data" /> <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> <Compile Include="AndroMDA.cs" /> <Compile Include="ConfigFile.cs" /> <Compile Include="Maven2Proxy.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. <Target Name="BeforeBuild"> </Target> <Target Name="AfterBuild"> </Target> --> <PropertyGroup> <PostBuildEvent>copy $(TargetPath) D:\projects\VSProjects\AndroMDATaskTest\Lib</PostBuildEvent> </PropertyGroup> </Project> 1.1 plugins/etc/andromda-dotnet/AndroMDA.MSBuild/AndroMDA.MSBuild.Tasks/AndroMDA.cs Index: AndroMDA.cs =================================================================== using System; using System.Text; using Microsoft.Build.Utilities; using System.Collections; namespace AndroMDA.MSBuild.Tasks { public class AndroMDA : ToolTask { public const string VERSION = "1.0"; #region Member Variables private bool m_synchronizeProjectTree = false; private bool m_offline = false; private string m_executablePath; private string m_commandLine; #endregion #region Properties public bool SynchronizeProjectTree { get { return m_synchronizeProjectTree; } set { m_synchronizeProjectTree = value; } } public bool Offline { get { return m_offline; } set { m_offline = value; } } protected override string ToolName { get { return m_executablePath; } } #endregion protected override void LogEventsFromTextOutput(string singleLine, Microsoft.Build.Framework.MessageImportance messageImportance) { base.LogEventsFromTextOutput(singleLine, messageImportance); } public AndroMDA() { string java_home = System.Environment.GetEnvironmentVariable("JAVA_HOME"); string maven_home = System.Environment.GetEnvironmentVariable("M2_HOME"); string maven_java_exe = java_home + "\\bin\\java.exe"; string maven_opts = System.Environment.GetEnvironmentVariable("MAVEN_OPTS"); string maven_cmd_line_args = "install "; string classworlds_jar = string.Empty; if (Offline) maven_cmd_line_args += "-o "; if (java_home == null || java_home == string.Empty) { throw new Exception("Error: Maven cannot run because the JAVA_HOME environment variable is not set.\nError: Please check your java installation."); } if (maven_home == null || maven_home == string.Empty) { throw new Exception("Error: Maven cannot run because the M2_HOME environment variable is not set.\nError: Please check that maven 2.x has been correctly installed."); } if (maven_opts == null || maven_opts == string.Empty) { maven_opts = "-Xmx256m"; } string[] classworldJars = System.IO.Directory.GetFiles(maven_home + "\\core\\boot", "classworlds-*.jar", System.IO.SearchOption.TopDirectoryOnly); classworlds_jar = classworldJars[0]; m_executablePath = maven_java_exe; m_commandLine = maven_opts + " -classpath \"" + classworlds_jar + "\" \"-Dclassworlds.conf=" + maven_home + "\\bin\\m2.conf\" " + "\"-Dmaven.home=" + maven_home + "\" org.codehaus.classworlds.Launcher " + maven_cmd_line_args; } public override bool Execute() { Log.LogMessage("AndroMDA MSBuild Task v" + VERSION); if (SynchronizeProjectTree) { DoSynchronizeProjectTree(); } return base.Execute(); } protected override string GenerateFullPathToTool() { return m_executablePath; } protected override string GenerateCommandLineCommands() { return m_commandLine; } private void DoSynchronizeProjectTree() { // TODO: Sync project tree } } } 1.1 plugins/etc/andromda-dotnet/AndroMDA.MSBuild/AndroMDA.MSBuild.Tasks/ConfigFile.cs Index: ConfigFile.cs =================================================================== // Android/VS // (c)2007 AndroMDA.org #region Using statements using System; using System.IO; using System.Collections; using System.Text; using System.Xml; #endregion namespace AndroMDA.VS80AddIn { public class ConfigFile { #region Member Variables private Hashtable m_configHash = null; private string m_fileName = string.Empty; private char m_keyValueDelimiter = '='; private char m_commentDelimiter = '#'; #endregion #region Properties public string this[string key] { get { return GetValueResolved(key); } set { m_configHash[key] = value; } } public ICollection Keys { get { return m_configHash.Keys; } } public ICollection Values { get { return m_configHash.Values; } } public int Count { get { return m_configHash.Count; } } #endregion public ConfigFile() { Init(); } public ConfigFile(string filename) { Init(); LoadFromFile(filename); } private void Init() { m_configHash = new Hashtable(); } public void Clear() { m_configHash.Clear(); m_fileName = string.Empty; } public void Add(string key, string value) { m_configHash.Add(key, value); } public void Remove(string key) { m_configHash.Remove(key); } public string GetValue(string key) { if (m_configHash[key] == null) { return string.Empty; } else { return (string)m_configHash[key]; } } public string GetPath(string key) { string path = GetValueResolved(key); path = path.Replace('/', '\\'); path = path.Replace("jar:", string.Empty); path = path.Replace("file:", string.Empty); int position = path.LastIndexOf('!'); if (position != -1) { path = path.Substring(0, position); } return path; } public void Contains(string key) { m_configHash.Contains(key); } public void LoadFromFile(string filename) { LoadFromFile(filename, true); } public void LoadFromFile(string filename, bool clearConfig) { try { if (clearConfig) { Clear(); } if (System.IO.File.Exists(filename)) { using (StreamReader sr = new StreamReader(filename)) { while (!sr.EndOfStream) { string line = sr.ReadLine().Trim(); if (line != string.Empty && line[0] != m_commentDelimiter && line.Contains("=")) { string[] pair = line.Split(new char[] { m_keyValueDelimiter }, 2); m_configHash[pair[0]] = pair[1]; } } sr.Close(); } } else { // Create an empty file StreamWriter sw = new StreamWriter(filename); sw.Close(); } m_fileName = filename; } catch (Exception e) { throw new Exception("Error while trying to load " + filename + ": " + e.Message, e); } } public void LoadFromXML(string filename) { LoadFromXML(filename, string.Empty, true); } public void LoadFromXML(string filename, string namePrefixToAdd) { LoadFromXML(filename, namePrefixToAdd, true); } public void LoadFromXML(string filename, string namePrefixToAdd, bool clearConfig) { try { if (clearConfig) { Clear(); } using (XmlTextReader r = new XmlTextReader(filename)) { while (r.Name.ToLower() != "properties" && !r.EOF) { r.Read(); } if (!r.EOF) { r.Read(); while (r.NodeType != XmlNodeType.EndElement && !r.EOF) { if (r.NodeType == XmlNodeType.Element) { string value = string.Empty; string name = namePrefixToAdd + r.Name; while (r.NodeType != XmlNodeType.EndElement) { r.Read(); if (r.NodeType == XmlNodeType.Text) value += r.Value; } m_configHash[name] = value; } r.Read(); } } r.Close(); } m_fileName = filename; } catch (Exception e) { throw new Exception("Error while trying to load " + filename + ": " + e.Message, e); } } public void Save() { Save(m_fileName); } public void Save(string filename) { StreamWriter sw = new StreamWriter(filename); foreach (string key in this.Keys) { sw.WriteLine(key + m_keyValueDelimiter + this[key]); } sw.Close(); } public void ResolveVariables() { Hashtable m_values = (Hashtable)m_configHash.Clone(); bool changesApplied = false; foreach (string key in this.Keys) { foreach (string variableKey in this.Keys) { string value = this[key]; if (value.Contains("${" + variableKey + "}")) { value = value.Replace("${" + variableKey + "}", this[variableKey]); m_values[key] = value; changesApplied = true; } } } if (changesApplied) { m_configHash = m_values; } } public string GetValueResolved(string key) { string resolvedValue = (string)m_configHash[key]; if (resolvedValue == null) { return string.Empty; } foreach (string variableKey in this.Keys) { if (resolvedValue.Contains("${" + variableKey + "}")) { string replacementValue = (string)m_configHash[variableKey]; if (replacementValue.Contains("${")) { replacementValue = GetValueResolved(variableKey); } resolvedValue = resolvedValue.Replace("${" + variableKey + "}", replacementValue); } } return resolvedValue; } } } 1.1 plugins/etc/andromda-dotnet/AndroMDA.MSBuild/AndroMDA.MSBuild.Tasks/Maven2Proxy.cs Index: Maven2Proxy.cs =================================================================== using System; using System.Collections.Generic; using System.Text; namespace AndroMDA.MSBuild.Tasks { class Maven2Proxy { } } 1.1 plugins/etc/andromda-dotnet/AndroMDA.MSBuild/AndroMDA.MSBuild.Tasks/Properties/AssemblyInfo.cs Index: AssemblyInfo.cs =================================================================== using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("AndroMDA.MSBuild.Tasks")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("HP 6400 XP v1.0")] [assembly: AssemblyProduct("AndroMDA.MSBuild.Tasks")] [assembly: AssemblyCopyright("Copyright © HP 6400 XP v1.0 2007")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("87ab0597-8e57-463e-a3a5-17a53dda620b")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: [assembly: AssemblyVersion(AndroMDA.MSBuild.Tasks.AndroMDA.VERSION)] [assembly: AssemblyFileVersion(AndroMDA.MSBuild.Tasks.AndroMDA.VERSION)] 1.1 plugins/etc/andromda-dotnet/AndroMDA.MSBuild/AndroMDA.MSBuild.sln Index: AndroMDA.MSBuild.sln ===================================================================  Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AndroMDA.MSBuild.Tasks", "AndroMDA.MSBuild.Tasks\AndroMDA.MSBuild.Tasks.csproj", "{E9C87326-E6E1-4F0D-B75F-D72C1D6DAA36}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {E9C87326-E6E1-4F0D-B75F-D72C1D6DAA36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E9C87326-E6E1-4F0D-B75F-D72C1D6DAA36}.Debug|Any CPU.Build.0 = Debug|Any CPU {E9C87326-E6E1-4F0D-B75F-D72C1D6DAA36}.Release|Any CPU.ActiveCfg = Release|Any CPU {E9C87326-E6E1-4F0D-B75F-D72C1D6DAA36}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal |