You are viewing a plain text version of this content. The canonical link for it is here.
Posted to nmaven-commits@incubator.apache.org by si...@apache.org on 2007/09/13 01:54:15 UTC

svn commit: r575139 [1/4] - in /incubator/nmaven/trunk: ./ assemblies/ assemblies/NMaven.Artifact/ assemblies/NMaven.Artifact/src/main/csharp/ assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/ assemblies/NMaven.IDE/src/main/csharp/ assemblies...

Author: sisbell
Date: Wed Sep 12 18:54:12 2007
New Revision: 575139

URL: http://svn.apache.org/viewvc?rev=575139&view=rev
Log:
Support for IDE-1 and IDE-3

Added:
    incubator/nmaven/trunk/assemblies/NMaven/
    incubator/nmaven/trunk/assemblies/NMaven.IDE/src/main/csharp/Properties/
    incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/
    incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/pom.xml   (with props)
    incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/
    incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/
    incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/csharp/
    incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/csharp/Settings.cs
    incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/csharp/SettingsUtil.cs
    incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/xsd/
    incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/xsd/Settings.xsd   (with props)
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/NMaven.VisualStudio.AddIn.AddIn   (with props)
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/NMaven.VisualStudio.Addin.sln
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/src/main/csharp/NMaven.VisualStudio.AddIn.AddIn   (with props)
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/src/main/csharp/NMaven.VisualStudio.Addin.csproj
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/src/main/csharp/NMaven/VisualStudio/Addin/ConfigureMavenRepositoryForm.Designer.cs
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/src/main/csharp/NMaven/VisualStudio/Addin/ConfigureMavenRepositoryForm.cs
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/src/main/csharp/NMaven/VisualStudio/Addin/ConfigureMavenRepositoryForm.resx
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/src/main/csharp/NMaven/VisualStudio/Addin/Connect.cs.orig
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/src/main/csharp/NMaven/VisualStudio/Addin/MainFormTest.cs
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/src/main/csharp/app.config   (with props)
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio/NMaven.VisualStudio.sln
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio/src/main/csharp/NMaven.VisualStudio.csproj
    incubator/nmaven/trunk/assemblies/NMaven/NMaven.sln
    incubator/nmaven/trunk/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/impl/JavaCompiler.java   (with props)
    incubator/nmaven/trunk/components/dotnet-repository/src/main/java/org/apache/maven/dotnet/repository/DotnetArtifactMetadata.java   (with props)
    incubator/nmaven/trunk/plugins/maven-repository-plugin/src/main/java/org/apache/maven/dotnet/plugin/repository/ArtifactManagerMojo.java   (with props)
    incubator/nmaven/trunk/thirdparty/org.apache.ws/
    incubator/nmaven/trunk/thirdparty/org.apache.ws/XmlSchema-1.1.jar   (with props)
    incubator/nmaven/trunk/thirdparty/org.apache.ws/XmlSchema-1.1.pom   (with props)
Modified:
    incubator/nmaven/trunk/assemblies/NMaven.Artifact/pom.xml
    incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven.Artifact.csproj
    incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/Artifact.cs
    incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/ArtifactContext.cs
    incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/ArtifactRepository.cs
    incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/IArtifactContext.cs
    incubator/nmaven/trunk/assemblies/NMaven.IDE/src/main/csharp/NMaven.IDE.csproj
    incubator/nmaven/trunk/assemblies/NMaven.Plugin.MojoGenerator/src/main/csharp/NMaven.Plugin.MojoGenerator.csproj
    incubator/nmaven/trunk/assemblies/NMaven.Plugin.MojoGenerator/src/main/csharp/NMaven/Plugin/MojoGenerator/Generator.cs
    incubator/nmaven/trunk/assemblies/NMaven.Plugin/src/main/csharp/NMaven.Plugin.csproj
    incubator/nmaven/trunk/assemblies/NMaven.Plugin/src/main/csharp/NMaven/Plugin/Injector/Impl/MavenProjectInjector.cs
    incubator/nmaven/trunk/assemblies/NMaven.Service/Embedder/src/main/csharp/NMaven.Service.Embedder.csproj
    incubator/nmaven/trunk/assemblies/NMaven.Solution/IProjectGenerator.cs
    incubator/nmaven/trunk/assemblies/NMaven.Solution/NMaven.Solution.csproj
    incubator/nmaven/trunk/assemblies/NMaven.Solution/ProjectGeneratorImpl.cs
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/pom.xml
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/src/main/csharp/NMaven/VisualStudio/Addin/AddArtifactsForm.Designer.cs
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/src/main/csharp/NMaven/VisualStudio/Addin/AddArtifactsForm.cs
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/src/main/csharp/NMaven/VisualStudio/Addin/AddArtifactsForm.resx
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.Addin/src/main/csharp/NMaven/VisualStudio/Addin/Connect.cs
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.ProjectWizard/src/main/csharp/ArchetypeProjectWizard.cs
    incubator/nmaven/trunk/assemblies/NMaven.VisualStudio.ProjectWizard/src/main/csharp/WindowsApplication2.suo
    incubator/nmaven/trunk/assemblies/pom.xml
    incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java
    incubator/nmaven/trunk/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/ProjectDao.java
    incubator/nmaven/trunk/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/ProjectFactory.java
    incubator/nmaven/trunk/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/impl/ProjectDaoImpl.java
    incubator/nmaven/trunk/components/pom.xml
    incubator/nmaven/trunk/plugins/maven-xsd-plugin/src/main/java/org/apache/maven/dotnet/plugin/xsd/XsdGeneratorMojo.java
    incubator/nmaven/trunk/plugins/netplugins/NMaven.Plugin.Addin/src/main/csharp/NMaven/Plugin/Addin/AutomationExtensibilityMojo.cs
    incubator/nmaven/trunk/plugins/netplugins/NMaven.Plugin.Settings/pom.xml
    incubator/nmaven/trunk/plugins/netplugins/NMaven.Plugin.Solution/src/main/csharp/NMaven/Plugin/Solution/SolutionMojo.cs
    incubator/nmaven/trunk/pom-dotnet.xml
    incubator/nmaven/trunk/pom.xml

Modified: incubator/nmaven/trunk/assemblies/NMaven.Artifact/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Artifact/pom.xml?rev=575139&r1=575138&r2=575139&view=diff
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Artifact/pom.xml (original)
+++ incubator/nmaven/trunk/assemblies/NMaven.Artifact/pom.xml Wed Sep 12 18:54:12 2007
@@ -36,6 +36,12 @@
       <version>0.14-SNAPSHOT</version>
     </dependency>
     <dependency>
+      <groupId>NMaven.Model</groupId>
+      <artifactId>NMaven.Model.Settings</artifactId>
+      <type>library</type>
+      <version>0.14-SNAPSHOT</version>
+    </dependency>
+    <dependency>
       <groupId>NUnit</groupId>
       <artifactId>NUnit.Framework</artifactId>
       <type>library</type>

Modified: incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven.Artifact.csproj
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven.Artifact.csproj?rev=575139&r1=575138&r2=575139&view=diff
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven.Artifact.csproj (original)
+++ incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven.Artifact.csproj Wed Sep 12 18:54:12 2007
@@ -12,9 +12,14 @@
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="NMaven.Model.Pom" />
+    <Reference Include="NMaven.Model.Settings, Version=0.14.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\..\..\..\.m2\uac\gac_msil\NMaven.Model.Settings\0.14-SNAPSHOT__NMaven.Model\NMaven.Model.Settings.dll</HintPath>
+    </Reference>
     <Reference Include="NUnit.Framework" />
     <Reference Include="System" />
     <Reference Include="System.Data" />
+    <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml" />
     <Reference Include="System.Xml" />
   </ItemGroup>

Modified: incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/Artifact.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/Artifact.cs?rev=575139&r1=575138&r2=575139&view=diff
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/Artifact.cs (original)
+++ incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/Artifact.cs Wed Sep 12 18:54:12 2007
@@ -17,6 +17,14 @@
 
         private string extension;
 
+        private String remotePath;
+
+        public String RemotePath
+        {
+            get { return remotePath; }
+            set { this.remotePath = value; }
+        }
+
         public string Extension
         {
             get { return extension; }

Modified: incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/ArtifactContext.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/ArtifactContext.cs?rev=575139&r1=575138&r2=575139&view=diff
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/ArtifactContext.cs (original)
+++ incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/ArtifactContext.cs Wed Sep 12 18:54:12 2007
@@ -3,7 +3,7 @@
 using System.Collections.Generic;
 using System.Text;
 
-using NMaven.Model;
+using NMaven.Model.Setting;
 
 namespace NMaven.Artifact
 {
@@ -13,11 +13,11 @@
         public ArtifactRepository GetArtifactRepository()
         {
             ArtifactRepository artifactRepository = new ArtifactRepository();
-            artifactRepository.Init(this, new DirectoryInfo(@"C:\Documents and Settings\shane\.m2\repository"));
+            artifactRepository.Init(this, new FileInfo(SettingsUtil.GetLocalRepositoryPath()).Directory);
             return artifactRepository;
         }
 
-        public Artifact GetArtifactFor(NMaven.Model.Model model)
+        public Artifact GetArtifactFor(NMaven.Model.Pom.Model model)
         {
             Artifact artifact = new Artifact();
             artifact.ArtifactId = model.artifactId;

Modified: incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/ArtifactRepository.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/ArtifactRepository.cs?rev=575139&r1=575138&r2=575139&view=diff
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/ArtifactRepository.cs (original)
+++ incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/ArtifactRepository.cs Wed Sep 12 18:54:12 2007
@@ -9,9 +9,57 @@
 {
     public sealed class ArtifactRepository
     {
-        public List<Artifact> GetArtifactsFor()
+        public Artifact GetArtifactFor(String uri)
         {
-            return (GetArtifactsFromDirectories(localRepository.GetDirectories()));
+            DirectoryInfo uac = new DirectoryInfo(localRepository.FullName + @"\uac\gac_msil\");
+
+            String[] tokens = uri.Split("/".ToCharArray());
+            int size = tokens.Length;
+            if (size < 3)
+            {
+                throw new IOException("Invalid Artifact Path = " + uri);
+            }
+            Artifact artifact = new Artifact();
+            artifact.ArtifactId = tokens[size - 3];
+            StringBuilder buffer = new StringBuilder();
+            for (int i = 0; i < size - 3; i++)
+            {
+                buffer.Append(tokens[i]);
+                if (i != size - 4)
+                {
+                    buffer.Append(".");
+                }
+            }
+            artifact.GroupId = buffer.ToString();
+            artifact.Version = tokens[size - 2];
+            artifact.Extension = tokens[size - 1].Split(".".ToCharArray())[1];
+            artifact.FileInfo = new FileInfo(uac.FullName + artifact.ArtifactId + @"\" +
+                artifact.Version + "__" + artifact.GroupId + @"\" + artifact.ArtifactId + ".dll" );
+            return artifact;
+        }
+
+        public List<Artifact> GetArtifacts()
+        {
+            List<Artifact> artifacts = new List<Artifact>();
+            DirectoryInfo uac = new DirectoryInfo(localRepository.FullName + @"\uac\gac_msil\");
+            int directoryStartPosition = uac.FullName.Length;
+
+            List<FileInfo> fileInfos = GetArtifactsFromDirectory(uac);
+
+            foreach (FileInfo fileInfo in fileInfos)
+            {
+                Artifact artifact = new Artifact();
+                String relativePath = fileInfo.FullName.Substring(directoryStartPosition,
+                    (fileInfo.FullName.Length - directoryStartPosition));
+                String[] tokens = relativePath.Split(new char[1] { '\\' });
+                artifact.ArtifactId = tokens[0];
+                String[] tokens2 = tokens[1].Split(new char[2]{'_', '_'});
+                artifact.Version = tokens2[0];
+                artifact.GroupId = tokens2[2];
+                artifact.FileInfo = fileInfo;
+                artifacts.Add(artifact);
+            }
+            return artifacts;
         }
 
         public void Init(ArtifactContext artifactContext, DirectoryInfo localRepository)
@@ -20,31 +68,19 @@
             this.localRepository = localRepository;
         }
 
-        private List<Artifact> GetArtifactsFromDirectories(DirectoryInfo[] directories)
+        private List<FileInfo> GetArtifactsFromDirectory(DirectoryInfo baseDirectoryInfo)
         {
-            List<Artifact> artifacts = new List<Artifact>();
+            DirectoryInfo[] directories = baseDirectoryInfo.GetDirectories();
+            List<FileInfo> fileInfos = new List<FileInfo>();
             foreach (DirectoryInfo directoryInfo in directories)
             {
-                foreach(FileInfo fileInfo in directoryInfo.GetFiles())
+                foreach (FileInfo fileInfo in directoryInfo.GetFiles())
                 {
-                    if (fileInfo.Name.EndsWith("pom"))
-                    {
-                        XmlReader reader = XmlReader.Create(fileInfo.FullName);
-		                XmlSerializer serializer = new XmlSerializer(typeof(NMaven.Model.Model));
-                        if (serializer.CanDeserialize(reader))
-                        {
-                            Artifact artifact = artifactContext.GetArtifactFor(
-                                (NMaven.Model.Model)serializer.Deserialize(reader));
-                            if (artifact.Extension.Equals("dll"))
-                            {
-                                artifacts.Add(artifact);
-                            }                           
-                        }
-                    }
+                    fileInfos.Add(fileInfo);                 
                 }
-                artifacts.AddRange(GetArtifactsFromDirectories(directoryInfo.GetDirectories()));
+                fileInfos.AddRange(GetArtifactsFromDirectory(directoryInfo));
             }
-            return artifacts;
+            return fileInfos;
         }
 
         private ArtifactContext artifactContext;

Modified: incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/IArtifactContext.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/IArtifactContext.cs?rev=575139&r1=575138&r2=575139&view=diff
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/IArtifactContext.cs (original)
+++ incubator/nmaven/trunk/assemblies/NMaven.Artifact/src/main/csharp/NMaven/Artifact/IArtifactContext.cs Wed Sep 12 18:54:12 2007
@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
+using NMaven.Model.Pom;
 
 namespace NMaven.Artifact
 {
@@ -8,7 +9,7 @@
     {
         ArtifactRepository GetArtifactRepository();
 
-        Artifact GetArtifactFor(NMaven.Model.Model model);
+        Artifact GetArtifactFor(NMaven.Model.Pom.Model model);
 
         Artifact CreateArtifact(String groupId, String artifactId, String version, String packaging);
 

Modified: incubator/nmaven/trunk/assemblies/NMaven.IDE/src/main/csharp/NMaven.IDE.csproj
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.IDE/src/main/csharp/NMaven.IDE.csproj?rev=575139&r1=575138&r2=575139&view=diff
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.IDE/src/main/csharp/NMaven.IDE.csproj (original)
+++ incubator/nmaven/trunk/assemblies/NMaven.IDE/src/main/csharp/NMaven.IDE.csproj Wed Sep 12 18:54:12 2007
@@ -1,4 +1,4 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <ProjectGuid>{31C18EC5-6876-4306-BF4E-A85A308C502E}</ProjectGuid>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -13,16 +13,6 @@
   <ItemGroup>
     <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     <Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-    <Reference Include="NMaven.Artifact, Version=0.14.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\..\..\..\..\.m2\repository\NMaven\Artifact\NMaven.Artifact\0.14\NMaven.Artifact.dll</HintPath>
-    </Reference>
-    <Reference Include="NMaven.Logging">
-      <HintPath>C:\Documents and Settings\shane\.m2\repository\NMaven\Logging\NMaven.Logging\0.14\NMaven.Logging.dll</HintPath>
-    </Reference>
-    <Reference Include="NMaven.Service.Embedder">
-      <HintPath>C:\Documents and Settings\shane\.m2\repository\NMaven\Service\NMaven.Service.Embedder\0.14\NMaven.Service.Embedder.dll</HintPath>
-    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Drawing" />
     <Reference Include="System.Web.Services" />
@@ -42,23 +32,21 @@
       <SubType>Form</SubType>
     </Compile>
     <Compile Include="NMaven\IDE\View\MainForm.Designer.cs" />
-    <Compile Include="Properties\Resources.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DesignTime>True</DesignTime>
-      <DependentUpon>Resources.resx</DependentUpon>
-    </Compile>
   </ItemGroup>
   <ItemGroup />
   <ItemGroup>
-    <EmbeddedResource Include="NMaven\IDE\Controls\MavenBuildControl.resx">
-      <SubType>Designer</SubType>
-      <DependentUpon>MavenBuildControl.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Properties\Resources.resx">
-      <SubType>Designer</SubType>
-      <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
-    </EmbeddedResource>
+    <ProjectReference Include="..\..\..\..\NMaven.Artifact\src\main\csharp\NMaven.Artifact.csproj">
+      <Project>{701803D4-90F5-44D7-919D-4844FEB7F936}</Project>
+      <Name>NMaven.Artifact</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\..\NMaven.Logging\src\main\csharp\NMaven.Logging.csproj">
+      <Project>{C511B03B-8AB7-4E61-9F6E-5E6F9F65E8CE}</Project>
+      <Name>NMaven.Logging</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\..\NMaven.Service\Embedder\src\main\csharp\NMaven.Service.Embedder.csproj">
+      <Project>{DF06BE45-AF6C-4DA4-8844-EA114F094C5F}</Project>
+      <Name>NMaven.Service.Embedder</Name>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
 </Project>

Added: incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/pom.xml?rev=575139&view=auto
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/pom.xml (added)
+++ incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/pom.xml Wed Sep 12 18:54:12 2007
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0">
+  <parent>
+    <groupId>NMaven</groupId>
+    <version>0.14-SNAPSHOT</version>
+    <artifactId>NMaven.Assemblies</artifactId>
+    <relativePath>..\..\pom.xml</relativePath>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>NMaven.Model</groupId>
+  <artifactId>NMaven.Model.Settings</artifactId>
+  <packaging>library</packaging>
+  <version>0.14-SNAPSHOT</version>
+  <name>NMaven.Model.Settings</name>
+  <build>
+    <sourceDirectory>src/main/csharp</sourceDirectory>
+    <plugins>
+      <!--
+       <plugin>
+         <groupId>org.apache.maven.dotnet.plugins</groupId>
+         <artifactId>maven-xsd-plugin</artifactId>
+         <executions>
+           <execution>
+             <goals>
+               <goal>xsd</goal>
+             </goals>
+           </execution>
+         </executions>
+         <configuration>
+           <xsdFile>${basedir}/src/main/xsd/Settings.xsd</xsdFile>
+         </configuration>
+       </plugin>
+     -->
+    </plugins>
+  </build>
+</project>
\ No newline at end of file

Propchange: incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/csharp/Settings.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/csharp/Settings.cs?rev=575139&view=auto
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/csharp/Settings.cs (added)
+++ incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/csharp/Settings.cs Wed Sep 12 18:54:12 2007
@@ -0,0 +1,886 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.832
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+// 
+// This source code was auto-generated by xsd, Version=2.0.50727.42.
+// 
+namespace NMaven.Model.Setting {
+    using System.Xml.Serialization;
+    
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="")]
+    [System.Xml.Serialization.XmlRootAttribute("settings", Namespace="", IsNullable=false)]
+    public partial class Settings {
+        
+        private string localRepositoryField;
+        
+        private bool interactiveModeField;
+        
+        private bool usePluginRegistryField;
+        
+        private bool offlineField;
+        
+        private Proxy[] proxiesField;
+        
+        private Server[] serversField;
+        
+        private Mirror[] mirrorsField;
+        
+        private Profile[] profilesField;
+        
+        private string[] activeProfilesField;
+        
+        private string[] pluginGroupsField;
+        
+        public Settings() {
+            this.interactiveModeField = true;
+            this.usePluginRegistryField = false;
+            this.offlineField = false;
+        }
+        
+        /// <remarks/>
+        public string localRepository {
+            get {
+                return this.localRepositoryField;
+            }
+            set {
+                this.localRepositoryField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.ComponentModel.DefaultValueAttribute(true)]
+        public bool interactiveMode {
+            get {
+                return this.interactiveModeField;
+            }
+            set {
+                this.interactiveModeField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.ComponentModel.DefaultValueAttribute(false)]
+        public bool usePluginRegistry {
+            get {
+                return this.usePluginRegistryField;
+            }
+            set {
+                this.usePluginRegistryField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.ComponentModel.DefaultValueAttribute(false)]
+        public bool offline {
+            get {
+                return this.offlineField;
+            }
+            set {
+                this.offlineField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlArrayItemAttribute("proxy", IsNullable=false)]
+        public Proxy[] proxies {
+            get {
+                return this.proxiesField;
+            }
+            set {
+                this.proxiesField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlArrayItemAttribute("server", IsNullable=false)]
+        public Server[] servers {
+            get {
+                return this.serversField;
+            }
+            set {
+                this.serversField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlArrayItemAttribute("mirror", IsNullable=false)]
+        public Mirror[] mirrors {
+            get {
+                return this.mirrorsField;
+            }
+            set {
+                this.mirrorsField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlArrayItemAttribute("profile", IsNullable=false)]
+        public Profile[] profiles {
+            get {
+                return this.profilesField;
+            }
+            set {
+                this.profilesField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlArrayItemAttribute("activeProfile", IsNullable=false)]
+        public string[] activeProfiles {
+            get {
+                return this.activeProfilesField;
+            }
+            set {
+                this.activeProfilesField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlArrayItemAttribute("pluginGroup", IsNullable=false)]
+        public string[] pluginGroups {
+            get {
+                return this.pluginGroupsField;
+            }
+            set {
+                this.pluginGroupsField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="")]
+    public partial class Proxy {
+        
+        private bool activeField;
+        
+        private string protocolField;
+        
+        private string usernameField;
+        
+        private string passwordField;
+        
+        private int portField;
+        
+        private string hostField;
+        
+        private string nonProxyHostsField;
+        
+        private string idField;
+        
+        public Proxy() {
+            this.activeField = false;
+            this.protocolField = "http";
+            this.portField = 8080;
+        }
+        
+        /// <remarks/>
+        [System.ComponentModel.DefaultValueAttribute(false)]
+        public bool active {
+            get {
+                return this.activeField;
+            }
+            set {
+                this.activeField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.ComponentModel.DefaultValueAttribute("http")]
+        public string protocol {
+            get {
+                return this.protocolField;
+            }
+            set {
+                this.protocolField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string username {
+            get {
+                return this.usernameField;
+            }
+            set {
+                this.usernameField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string password {
+            get {
+                return this.passwordField;
+            }
+            set {
+                this.passwordField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.ComponentModel.DefaultValueAttribute(8080)]
+        public int port {
+            get {
+                return this.portField;
+            }
+            set {
+                this.portField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string host {
+            get {
+                return this.hostField;
+            }
+            set {
+                this.hostField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string nonProxyHosts {
+            get {
+                return this.nonProxyHostsField;
+            }
+            set {
+                this.nonProxyHostsField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string id {
+            get {
+                return this.idField;
+            }
+            set {
+                this.idField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="")]
+    public partial class RepositoryPolicy {
+        
+        private bool enabledField;
+        
+        private string updatePolicyField;
+        
+        private string checksumPolicyField;
+        
+        public RepositoryPolicy() {
+            this.enabledField = true;
+        }
+        
+        /// <remarks/>
+        [System.ComponentModel.DefaultValueAttribute(true)]
+        public bool enabled {
+            get {
+                return this.enabledField;
+            }
+            set {
+                this.enabledField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string updatePolicy {
+            get {
+                return this.updatePolicyField;
+            }
+            set {
+                this.updatePolicyField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string checksumPolicy {
+            get {
+                return this.checksumPolicyField;
+            }
+            set {
+                this.checksumPolicyField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="")]
+    public partial class Repository {
+        
+        private RepositoryPolicy releasesField;
+        
+        private RepositoryPolicy snapshotsField;
+        
+        private string idField;
+        
+        private string nameField;
+        
+        private string urlField;
+        
+        private string layoutField;
+        
+        public Repository() {
+            this.layoutField = "default";
+        }
+        
+        /// <remarks/>
+        public RepositoryPolicy releases {
+            get {
+                return this.releasesField;
+            }
+            set {
+                this.releasesField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public RepositoryPolicy snapshots {
+            get {
+                return this.snapshotsField;
+            }
+            set {
+                this.snapshotsField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string id {
+            get {
+                return this.idField;
+            }
+            set {
+                this.idField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string name {
+            get {
+                return this.nameField;
+            }
+            set {
+                this.nameField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string url {
+            get {
+                return this.urlField;
+            }
+            set {
+                this.urlField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.ComponentModel.DefaultValueAttribute("default")]
+        public string layout {
+            get {
+                return this.layoutField;
+            }
+            set {
+                this.layoutField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="")]
+    public partial class ActivationFile {
+        
+        private string missingField;
+        
+        private string existsField;
+        
+        /// <remarks/>
+        public string missing {
+            get {
+                return this.missingField;
+            }
+            set {
+                this.missingField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string exists {
+            get {
+                return this.existsField;
+            }
+            set {
+                this.existsField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="")]
+    public partial class ActivationProperty {
+        
+        private string nameField;
+        
+        private string valueField;
+        
+        /// <remarks/>
+        public string name {
+            get {
+                return this.nameField;
+            }
+            set {
+                this.nameField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string value {
+            get {
+                return this.valueField;
+            }
+            set {
+                this.valueField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="")]
+    public partial class ActivationOS {
+        
+        private string nameField;
+        
+        private string familyField;
+        
+        private string archField;
+        
+        private string versionField;
+        
+        /// <remarks/>
+        public string name {
+            get {
+                return this.nameField;
+            }
+            set {
+                this.nameField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string family {
+            get {
+                return this.familyField;
+            }
+            set {
+                this.familyField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string arch {
+            get {
+                return this.archField;
+            }
+            set {
+                this.archField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string version {
+            get {
+                return this.versionField;
+            }
+            set {
+                this.versionField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="")]
+    public partial class Activation {
+        
+        private bool activeByDefaultField;
+        
+        private string jdkField;
+        
+        private ActivationOS osField;
+        
+        private ActivationProperty propertyField;
+        
+        private ActivationFile fileField;
+        
+        public Activation() {
+            this.activeByDefaultField = false;
+        }
+        
+        /// <remarks/>
+        [System.ComponentModel.DefaultValueAttribute(false)]
+        public bool activeByDefault {
+            get {
+                return this.activeByDefaultField;
+            }
+            set {
+                this.activeByDefaultField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string jdk {
+            get {
+                return this.jdkField;
+            }
+            set {
+                this.jdkField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public ActivationOS os {
+            get {
+                return this.osField;
+            }
+            set {
+                this.osField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public ActivationProperty property {
+            get {
+                return this.propertyField;
+            }
+            set {
+                this.propertyField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public ActivationFile file {
+            get {
+                return this.fileField;
+            }
+            set {
+                this.fileField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="")]
+    public partial class Profile {
+        
+        private Activation activationField;
+        
+        private ProfileProperties propertiesField;
+        
+        private Repository[] repositoriesField;
+        
+        private Repository[] pluginRepositoriesField;
+        
+        private string idField;
+        
+        /// <remarks/>
+        public Activation activation {
+            get {
+                return this.activationField;
+            }
+            set {
+                this.activationField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public ProfileProperties properties {
+            get {
+                return this.propertiesField;
+            }
+            set {
+                this.propertiesField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlArrayItemAttribute("repository", IsNullable=false)]
+        public Repository[] repositories {
+            get {
+                return this.repositoriesField;
+            }
+            set {
+                this.repositoriesField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlArrayItemAttribute("pluginRepository", IsNullable=false)]
+        public Repository[] pluginRepositories {
+            get {
+                return this.pluginRepositoriesField;
+            }
+            set {
+                this.pluginRepositoriesField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string id {
+            get {
+                return this.idField;
+            }
+            set {
+                this.idField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="")]
+    public partial class ProfileProperties {
+        
+        private System.Xml.XmlElement[] anyField;
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlAnyElementAttribute()]
+        public System.Xml.XmlElement[] Any {
+            get {
+                return this.anyField;
+            }
+            set {
+                this.anyField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="")]
+    public partial class Mirror {
+        
+        private string mirrorOfField;
+        
+        private string nameField;
+        
+        private string urlField;
+        
+        private string idField;
+        
+        /// <remarks/>
+        public string mirrorOf {
+            get {
+                return this.mirrorOfField;
+            }
+            set {
+                this.mirrorOfField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string name {
+            get {
+                return this.nameField;
+            }
+            set {
+                this.nameField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string url {
+            get {
+                return this.urlField;
+            }
+            set {
+                this.urlField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string id {
+            get {
+                return this.idField;
+            }
+            set {
+                this.idField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="")]
+    public partial class Server {
+        
+        private string usernameField;
+        
+        private string passwordField;
+        
+        private string privateKeyField;
+        
+        private string passphraseField;
+        
+        private string filePermissionsField;
+        
+        private string directoryPermissionsField;
+        
+        private ServerConfiguration configurationField;
+        
+        private string idField;
+        
+        /// <remarks/>
+        public string username {
+            get {
+                return this.usernameField;
+            }
+            set {
+                this.usernameField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string password {
+            get {
+                return this.passwordField;
+            }
+            set {
+                this.passwordField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string privateKey {
+            get {
+                return this.privateKeyField;
+            }
+            set {
+                this.privateKeyField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string passphrase {
+            get {
+                return this.passphraseField;
+            }
+            set {
+                this.passphraseField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string filePermissions {
+            get {
+                return this.filePermissionsField;
+            }
+            set {
+                this.filePermissionsField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string directoryPermissions {
+            get {
+                return this.directoryPermissionsField;
+            }
+            set {
+                this.directoryPermissionsField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public ServerConfiguration configuration {
+            get {
+                return this.configurationField;
+            }
+            set {
+                this.configurationField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string id {
+            get {
+                return this.idField;
+            }
+            set {
+                this.idField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="")]
+    public partial class ServerConfiguration {
+        
+        private System.Xml.XmlElement[] anyField;
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlAnyElementAttribute()]
+        public System.Xml.XmlElement[] Any {
+            get {
+                return this.anyField;
+            }
+            set {
+                this.anyField = value;
+            }
+        }
+    }
+}
\ No newline at end of file

Added: incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/csharp/SettingsUtil.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/csharp/SettingsUtil.cs?rev=575139&view=auto
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/csharp/SettingsUtil.cs (added)
+++ incubator/nmaven/trunk/assemblies/NMaven.Model/Settings/src/main/csharp/SettingsUtil.cs Wed Sep 12 18:54:12 2007
@@ -0,0 +1,215 @@
+#region licence
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+#endregion
+
+#region Using
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using System.Xml;
+using System.Xml.Serialization;
+using NMaven.Model;
+#endregion
+
+namespace NMaven.Model.Setting
+{
+    #region SettingsUtil
+
+    public static class SettingsUtil
+    {
+        #region GetDefaultSettingsPath()
+        /// <summary>
+        /// Gets the default settings path.
+        /// </summary>
+        /// <returns>
+        /// The default settings path.
+        /// </returns>
+        public static string GetDefaultSettingsPath()
+        {
+            string m2Dir = Environment.GetEnvironmentVariable("M2_HOME");
+
+            if ((!string.IsNullOrEmpty(m2Dir)) && Directory.Exists(m2Dir))
+            {
+                string confDir = m2Dir + @"\conf";
+
+                if (Directory.Exists(confDir))
+                {
+                    string settingsPath = confDir + @"\settings.xml";
+
+                    if (File.Exists(settingsPath))
+                    {
+                        return settingsPath;
+                    }
+                }
+            }
+
+            return null;
+        } 
+        #endregion
+
+        #region GetUserSettingsPath()
+        /// <summary>
+        /// Gets the user settings path.
+        /// </summary>
+        /// <returns>
+        /// The user settings path.
+        /// </returns>
+        public static string GetUserSettingsPath()
+        {
+            string profileDir = Environment.GetEnvironmentVariable("USERPROFILE");
+
+            if ((!string.IsNullOrEmpty(profileDir)) && Directory.Exists(profileDir))
+            {
+                string m2Dir = profileDir + @"\.m2";
+
+                if (Directory.Exists(m2Dir))
+                {
+                    string settingsPath = m2Dir + @"\settings.xml";
+
+                    if (File.Exists(settingsPath))
+                    {
+                        return settingsPath;
+                    }
+                }
+            }
+
+            return null;
+        }
+        #endregion
+
+        #region GetLocalRepositoryPath()
+        /// <summary>
+        /// Gets the local repository path.
+        /// </summary>
+        /// <returns>
+        /// The local repository path
+        /// </returns>
+        public static string GetLocalRepositoryPath()
+        {
+            string path = null;
+            string userSettingsPath = GetUserSettingsPath();
+
+            if (!string.IsNullOrEmpty(userSettingsPath))
+            {
+                try
+                {
+                    Settings settings = ReadSettings(userSettingsPath);
+
+                    if (settings != null)
+                    {
+                        path = settings.localRepository;
+                    }
+                }
+                catch
+                {
+                }
+
+                if (!string.IsNullOrEmpty(path))
+                {
+                    return path;
+                } 
+            }
+
+            string defaultSettingsPath = GetDefaultSettingsPath();
+
+            if (!string.IsNullOrEmpty(defaultSettingsPath))
+            {
+                try
+                {
+                    Settings settings = ReadSettings(defaultSettingsPath);
+
+                    if (settings != null)
+                    {
+                        path = settings.localRepository;
+                    }
+                }
+                catch
+                {
+                }
+
+                if (!string.IsNullOrEmpty(path))
+                {
+                    return path;
+                } 
+            }
+
+            string profileDir = Environment.GetEnvironmentVariable("USERPROFILE");
+
+            return profileDir + @"\.m2\repository";
+        } 
+        #endregion
+
+        public static Settings ReadSettings(string path)
+        {
+            if (path == null)
+            {
+                throw new ArgumentNullException("path");
+            }
+
+            path = path.Trim();
+
+            if (path.Length == 0)
+            {
+                throw new ArgumentException("Value is empty", "path");
+            }
+
+            return ReadSettings(new FileInfo(path));
+        }
+
+        #region ReadSettings(FileInfo)
+        /// <summary>
+        /// Reads the settings.
+        /// </summary>
+        /// <param name="fileInfo">The file info.</param>
+        /// <returns>
+        /// The settings read from the file
+        /// </returns>
+        public static Settings ReadSettings(FileInfo fileInfo)
+        {
+            if (fileInfo == null)
+            {
+                throw new ArgumentNullException("fileInfo");
+            }
+
+            XmlReader reader = null;
+            try
+            {
+                reader = XmlReader.Create(fileInfo.FullName);
+                XmlSerializer serializer = new XmlSerializer(typeof(Settings));
+
+                return (serializer.CanDeserialize(reader))
+                    ? (Settings)serializer.Deserialize(reader)
+                    : null;
+            }
+            finally
+            {
+                if(reader != null)
+                {
+                    reader.Close();
+                }
+            }
+        }
+        #endregion
+    }
+
+    #endregion
+}
+