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));