Author: lcorneliussen
Date: Sun May  1 22:19:50 2011
New Revision: 1098424

URL: http://svn.apache.org/viewvc?rev=1098424&view=rev
Log:
[NPANDAY-377] Refactored to more robustness + Respect -Dnpanday.settings in 
SettingsUtil.getOrPopulateSettingsRepository + Tested support for 
-Dnpanday.settings=file-path.xml

Modified:
    
incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/SettingsUtil.java
    
incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/impl/StateMachineProcessorImpl.java
    
incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/impl/VendorInfoTransitionRuleFactory.java
    
incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/src/main/csharp/NPanday/Plugin/Settings/PathUtil.cs
    
incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/src/main/csharp/NPanday/Plugin/Settings/SettingsGeneratorMojo.cs

Modified: 
incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/SettingsUtil.java
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/SettingsUtil.java?rev=1098424&r1=1098423&r2=1098424&view=diff
==============================================================================
--- 
incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/SettingsUtil.java
 (original)
+++ 
incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/SettingsUtil.java
 Sun May  1 22:19:50 2011
@@ -35,7 +35,7 @@ import java.util.Hashtable;
 public class SettingsUtil
 {
     /**
-     * Return the registered settings, or create from default settings file 
location (.m2/npanday-settings.xml)
+     * Return the registered settings, or create from configured 
(-Dnpanday-settings=...) or default settings file location 
(.m2/npanday-settings.xml)
      * @param repositoryRegistry The registry.
      * @return The current, or just created SettingsRepository
      * @throws SettingsException If anything goes wrong reading or registering 
the settings
@@ -43,7 +43,13 @@ public class SettingsUtil
     public static SettingsRepository getOrPopulateSettingsRepository( 
RepositoryRegistry repositoryRegistry)
         throws SettingsException
     {
-          return getOrPopulateSettingsRepository(repositoryRegistry, 
PathUtil.getHomeM2Folder());
+        String settingsFolder = PathUtil.getHomeM2Folder();
+        String customFolder = System.getProperty( "npanday.settings" );
+        if (customFolder != null && customFolder != "")
+        {
+            settingsFolder = customFolder;
+        }
+        return getOrPopulateSettingsRepository(repositoryRegistry, 
settingsFolder );
     }
 
     /**

Modified: 
incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/impl/StateMachineProcessorImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/impl/StateMachineProcessorImpl.java?rev=1098424&r1=1098423&r2=1098424&view=diff
==============================================================================
--- 
incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/impl/StateMachineProcessorImpl.java
 (original)
+++ 
incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/impl/StateMachineProcessorImpl.java
 Sun May  1 22:19:50 2011
@@ -85,6 +85,16 @@ public final class StateMachineProcessor
         }
 
         VendorInfoTransitionRuleFactory factory = new 
VendorInfoTransitionRuleFactory();
+
+        try
+        {
+            factory.init( repositoryRegistry, vendorInfoRepository, logger );
+        }
+        catch ( npanday.InitializationException e )
+        {
+            throw new InitializationException( "NPANDAY-102-008: Initializing 
rule factory failed." , e);
+        }
+
         transitionRules = new HashMap<VendorInfoState, 
VendorInfoTransitionRule>();
         transitionRules.put( VendorInfoState.MTT, 
factory.createVendorInfoSetterForMTT() );
         transitionRules.put( VendorInfoState.MTF, 
factory.createVendorInfoSetterForMTF() );
@@ -94,14 +104,6 @@ public final class StateMachineProcessor
 
         if ( settingsRepository != null )
         {
-            try
-            {
-                factory.init( repositoryRegistry, vendorInfoRepository, logger 
);
-            }
-            catch ( npanday.InitializationException e )
-            {
-                throw new InitializationException( "NPANDAY-102-008: 
Initializing rule factory failed." , e);
-            }
             transitionRules.put( VendorInfoState.MFF, 
factory.createVendorInfoSetterForMFF() );
             transitionRules.put( VendorInfoState.FTF, 
factory.createVendorInfoSetterForFTF() );
             transitionRules.put( VendorInfoState.FFT, 
factory.createVendorInfoSetterForFFT() );
@@ -115,7 +117,7 @@ public final class StateMachineProcessor
         }
         else
         {
-            logger.info( "NPANDAY-102-001: No NPanday settings available. 
Using Defaults." );
+            logger.warn( "NPANDAY-102-001: No NPanday settings available. 
Using Defaults." );
             transitionRules.put( VendorInfoState.MFF, 
factory.createVendorInfoSetterForMFF_NoSettings() );
             transitionRules.put( VendorInfoState.NFT, 
factory.createVendorInfoSetterForNFT_NoSettings() );
             transitionRules.put( VendorInfoState.NTF, 
factory.createVendorInfoSetterForNTF_NoSettings() );

Modified: 
incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/impl/VendorInfoTransitionRuleFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/impl/VendorInfoTransitionRuleFactory.java?rev=1098424&r1=1098423&r2=1098424&view=diff
==============================================================================
--- 
incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/impl/VendorInfoTransitionRuleFactory.java
 (original)
+++ 
incubator/npanday/trunk/components/dotnet-vendor/src/main/java/npanday/vendor/impl/VendorInfoTransitionRuleFactory.java
 Sun May  1 22:19:50 2011
@@ -88,6 +88,8 @@ final class VendorInfoTransitionRuleFact
     {
         this.vendorInfoRepository = vendorInfoRepository;
         this.logger = logger;
+        this.versionMatcher = new VersionMatcher();
+
         if ( repositoryRegistry == null )
         {
             throw new InitializationException( "NPANDAY-103-000: Unable to 
find the repository registry" );
@@ -103,24 +105,21 @@ final class VendorInfoTransitionRuleFact
         {
             throw new InitializationException( "NPANDAY-103-067: Could not get 
settings." , e);
         }
-        if ( settingsRepository == null )
-        {
-            throw new InitializationException(
-                "NPANDAY-103-001: Settings Repository is null. Aborting 
initialization of VendorInfoTranstionRuleFactory" );
-        }
 
-        try
-        {
-            defaultVendor = VendorFactory.createVendorFromName( 
settingsRepository.getDefaultSetup().getVendorName() );
-            logger.debug( "NPANDAY-103-036: Default Vendor Initialized: Name = 
" + defaultVendor );
-        }
-        catch ( VendorUnsupportedException e )
+        if (settingsRepository != null)
         {
-            throw new InitializationException( "NPANDAY-103-002: Unknown 
Default Vendor: Name = " + defaultVendor, e );
+            try
+            {
+                defaultVendor = VendorFactory.createVendorFromName( 
settingsRepository.getDefaultSetup().getVendorName() );
+                logger.debug( "NPANDAY-103-036: Default Vendor Initialized: 
Name = " + defaultVendor );
+            }
+            catch ( VendorUnsupportedException e )
+            {
+                throw new InitializationException( "NPANDAY-103-002: Unknown 
Default Vendor: Name = " + defaultVendor, e );
+            }
+            defaultVendorVersion = 
settingsRepository.getDefaultSetup().getVendorVersion().trim();
+            defaultFrameworkVersion = 
settingsRepository.getDefaultSetup().getFrameworkVersion().trim();
         }
-        defaultVendorVersion = 
settingsRepository.getDefaultSetup().getVendorVersion().trim();
-        defaultFrameworkVersion = 
settingsRepository.getDefaultSetup().getFrameworkVersion().trim();
-        this.versionMatcher = new VersionMatcher();
     }
 
     VendorInfoTransitionRule createPostProcessRule()

Modified: 
incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/src/main/csharp/NPanday/Plugin/Settings/PathUtil.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/src/main/csharp/NPanday/Plugin/Settings/PathUtil.cs?rev=1098424&r1=1098423&r2=1098424&view=diff
==============================================================================
--- 
incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/src/main/csharp/NPanday/Plugin/Settings/PathUtil.cs
 (original)
+++ 
incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/src/main/csharp/NPanday/Plugin/Settings/PathUtil.cs
 Sun May  1 22:19:50 2011
@@ -17,12 +17,29 @@
 // under the License.
 //
 
+using System;
 using System.IO;
 
 namespace NPanday.Plugin.Settings
 {
+    // TODO: Move this to common PathUtil, when NPANDAY-422 is fixed
     public static class PathUtil
     {
+        public static string GetHomeM2Folder()
+        {
+            return Environment.GetEnvironmentVariable("USERPROFILE") + "/.m2";
+        }
+
+        public static string BuildSettingsFilePath( string settingsPathOrFile )
+        {
+            if (settingsPathOrFile.EndsWith( "xml" ))
+            {
+                return settingsPathOrFile;
+            }
+
+            return Path.Combine(settingsPathOrFile, "npanday-settings.xml");
+        }
+
         public static string FirstExisting(params string[] probingPaths)
         {
             foreach (string dir in probingPaths)

Modified: 
incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/src/main/csharp/NPanday/Plugin/Settings/SettingsGeneratorMojo.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/src/main/csharp/NPanday/Plugin/Settings/SettingsGeneratorMojo.cs?rev=1098424&r1=1098423&r2=1098424&view=diff
==============================================================================
--- 
incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/src/main/csharp/NPanday/Plugin/Settings/SettingsGeneratorMojo.cs
 (original)
+++ 
incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/src/main/csharp/NPanday/Plugin/Settings/SettingsGeneratorMojo.cs
 Sun May  1 22:19:50 2011
@@ -45,9 +45,9 @@ namespace NPanday.Plugin.Settings
             string outputFile;
             if (String.IsNullOrEmpty(npandaySettingsPath))
             {
-                npandaySettingsPath = 
Environment.GetEnvironmentVariable("USERPROFILE") + "/.m2";
+                npandaySettingsPath = PathUtil.GetHomeM2Folder();
             }
-            outputFile = npandaySettingsPath + "/npanday-settings.xml";
+            outputFile = PathUtil.BuildSettingsFilePath(npandaySettingsPath);
 
             XmlSerializer serializer = new 
XmlSerializer(typeof(npandaySettings));
 


Reply via email to