Author: evenisse
Date: Tue Jan 31 13:03:42 2006
New Revision: 373910

URL: http://svn.apache.org/viewcvs?rev=373910&view=rev
Log:
[SCM-22] Allow to configure path of ss.exe

Added:
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/src/main/mdo/
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/src/main/mdo/vss-settings.mdo
Modified:
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/pom.xml
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/src/main/java/org/apache/maven/scm/provider/vss/commands/changelog/VssHistoryCommand.java

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/pom.xml
URL: 
http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/pom.xml?rev=373910&r1=373909&r2=373910&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/pom.xml 
(original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/pom.xml Tue Jan 
31 13:03:42 2006
@@ -8,4 +8,26 @@
   <artifactId>maven-scm-provider-vss</artifactId>
   <version>1.0-beta-3-SNAPSHOT</version>
   <name>Maven SCM Visual Source Safe Provider</name>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.modello</groupId>
+        <artifactId>modello-maven-plugin</artifactId>
+        <version>1.0-alpha-6</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>java</goal>
+              <goal>xpp3-reader</goal>
+              <goal>xsd</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <version>1.0.0</version>
+          <model>src/main/mdo/vss-settings.mdo</model>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/src/main/java/org/apache/maven/scm/provider/vss/commands/changelog/VssHistoryCommand.java
URL: 
http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/src/main/java/org/apache/maven/scm/provider/vss/commands/changelog/VssHistoryCommand.java?rev=373910&r1=373909&r2=373910&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/src/main/java/org/apache/maven/scm/provider/vss/commands/changelog/VssHistoryCommand.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/src/main/java/org/apache/maven/scm/provider/vss/commands/changelog/VssHistoryCommand.java
 Tue Jan 31 13:03:42 2006
@@ -24,9 +24,17 @@
 import org.apache.maven.scm.provider.vss.commands.VssCommandLineUtils;
 import org.apache.maven.scm.provider.vss.commands.VssConstants;
 import org.apache.maven.scm.provider.vss.repository.VssScmProviderRepository;
+import org.apache.maven.scm.providers.vss.settings.Settings;
+import org.apache.maven.scm.providers.vss.settings.io.xpp3.VssXpp3Reader;
+import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.cli.CommandLineUtils;
 import org.codehaus.plexus.util.cli.Commandline;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Locale;
@@ -34,6 +42,34 @@
 public class VssHistoryCommand
     extends AbstractChangeLogCommand
 {
+    private static Settings settings;
+
+    static
+    {
+        File scmUserHome = new File( System.getProperty( "user.home" ), ".scm" 
);
+        File settingsFile = new File( scmUserHome, "vss-settings.xml" );
+        if ( settingsFile.exists() )
+        {
+            VssXpp3Reader reader = new VssXpp3Reader();
+            try
+            {
+                settings = reader.read( new FileReader( settingsFile ) );
+            }
+            catch ( FileNotFoundException e )
+            {
+            }
+            catch ( IOException e )
+            {
+            }
+            catch ( XmlPullParserException e )
+            {
+                String message = settingsFile.getAbsolutePath() + " isn't well 
formed. SKIPPED." + e.getMessage();
+
+                System.out.println( message );
+            }
+        }
+    }
+
     protected ChangeLogScmResult executeChangeLogCommand( 
ScmProviderRepository repository, ScmFileSet fileSet,
                                                           Date startDate, Date 
endDate, int numDays, String branch )
         throws ScmException
@@ -75,7 +111,20 @@
 
         command.addEnvironment( "SSDIR", repo.getVssdir() );
 
-        command.setExecutable( VssConstants.SS_EXE );
+        String ssDir = "";
+
+        if ( settings != null )
+        {
+            ssDir = settings.getVssDirectory();
+
+            ssDir = StringUtils.replace( ssDir, "\\", "/" );
+
+            if ( !ssDir.endsWith( "/" ) )
+            {
+                ssDir += "/";
+            }
+        }
+        command.setExecutable( ssDir  + VssConstants.SS_EXE );
 
         command.createArgument().setValue( VssConstants.COMMAND_HISTORY );
 

Added: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/src/main/mdo/vss-settings.mdo
URL: 
http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/src/main/mdo/vss-settings.mdo?rev=373910&view=auto
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/src/main/mdo/vss-settings.mdo
 (added)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-vss/src/main/mdo/vss-settings.mdo
 Tue Jan 31 13:03:42 2006
@@ -0,0 +1,26 @@
+<model>
+  <id>vss</id>
+  <name>Vss</name>
+  <description>VSS Provider Model.</description>
+  <defaults>
+    <default>
+      <key>package</key>
+      <value>org.apache.maven.scm.providers.vss.settings</value>
+    </default>
+  </defaults>
+
+  <classes>
+    <class rootElement="true" xml.tagName="vss-settings">
+      <name>Settings</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>vssDirectory</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description>Visual Source Safe path</description>
+        </field>
+      </fields>
+    </class>
+  </classes>
+</model>


Reply via email to