Author: olamy
Date: Mon Dec 14 22:10:49 2009
New Revision: 890499

URL: http://svn.apache.org/viewvc?rev=890499&view=rev
Log:
[SCM-505] Linux Synergy client fails to execute scm:update command.
Submitted by Subir Sasikumar.

Modified:
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/main/java/org/apache/maven/scm/provider/synergy/util/SynergyCCM.java
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/main/java/org/apache/maven/scm/provider/synergy/util/SynergyUtil.java
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/test/java/org/apache/maven/scm/provider/synergy/util/SynergyCCMTest.java

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/main/java/org/apache/maven/scm/provider/synergy/util/SynergyCCM.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/main/java/org/apache/maven/scm/provider/synergy/util/SynergyCCM.java?rev=890499&r1=890498&r2=890499&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/main/java/org/apache/maven/scm/provider/synergy/util/SynergyCCM.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/main/java/org/apache/maven/scm/provider/synergy/util/SynergyCCM.java
 Mon Dec 14 22:10:49 2009
@@ -801,6 +801,39 @@
     }
 
     /**
+     * Create commandline to start a  remote Synergy session
+     *
+     * @param username
+     * @param password
+     * @param role
+     * @return
+     * @throws ScmException
+     */
+    public static Commandline startRemote( String username, String password, 
SynergyRole role )
+        throws ScmException
+    {
+        Commandline cl = new Commandline();
+
+        cl.setExecutable( CCM );
+        cl.createArg().setValue( START );
+        cl.createArg().setValue( "-nogui" );
+        cl.createArg().setValue( "-m" ); // Multissesion
+        cl.createArg().setValue( "-q" ); // Quiet (return only CCM_ADDR)
+               cl.createArg().setValue( "-rc" );//Remote client
+        cl.createArg().setValue( "-n" );
+        cl.createArg().setValue( username );
+        cl.createArg().setValue( "-pw" );
+        cl.createArg().setValue( password );
+        if ( role != null )
+        {
+            cl.createArg().setValue( "-r" );
+            cl.createArg().setValue( role.toString() );
+        }
+
+        return cl;
+    }
+       
+    /**
      * Create commandline to get Synergy database delimiter
      *
      * @return

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/main/java/org/apache/maven/scm/provider/synergy/util/SynergyUtil.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/main/java/org/apache/maven/scm/provider/synergy/util/SynergyUtil.java?rev=890499&r1=890498&r2=890499&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/main/java/org/apache/maven/scm/provider/synergy/util/SynergyUtil.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/main/java/org/apache/maven/scm/provider/synergy/util/SynergyUtil.java
 Mon Dec 14 22:10:49 2009
@@ -717,7 +717,24 @@
         CommandLineUtils.StringStreamConsumer stderr = new 
CommandLineUtils.StringStreamConsumer();
         CommandLineUtils.StringStreamConsumer stdout = new 
CommandLineUtils.StringStreamConsumer();
 
-        executeSynergyCommand( logger, cl, stderr, stdout, true );
+        //executeSynergyCommand( logger, cl, stderr, stdout, true );
+               
+               int exitCode = executeSynergyCommand( logger, cl, stderr, 
stdout, false );
+               
+               if ( logger.isDebugEnabled() )
+        {
+            logger.debug( "Synergy : start returns with error code " + 
exitCode );
+        }              
+               
+               if ( exitCode != 0 ) 
+               {
+                       cl = SynergyCCM.startRemote( username, password, role );
+            
+                       stderr = new CommandLineUtils.StringStreamConsumer();
+            stdout = new CommandLineUtils.StringStreamConsumer();              
        
+                       
+                       executeSynergyCommand( logger, cl, stderr, stdout, true 
);                      
+               }
 
         return stdout.getOutput();
     }

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/test/java/org/apache/maven/scm/provider/synergy/util/SynergyCCMTest.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/test/java/org/apache/maven/scm/provider/synergy/util/SynergyCCMTest.java?rev=890499&r1=890498&r2=890499&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/test/java/org/apache/maven/scm/provider/synergy/util/SynergyCCMTest.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-synergy/src/test/java/org/apache/maven/scm/provider/synergy/util/SynergyCCMTest.java
 Mon Dec 14 22:10:49 2009
@@ -393,6 +393,13 @@
         Commandline cl = SynergyCCM.start( "user", "pass", 
SynergyRole.BUILD_MGR );
         assertCommandLine( "ccm start -nogui -m -q -n user -pw pass -r 
build_mgr", null, cl );
     }
+       
+       public void testStartRemote()
+        throws ScmException
+    {
+        Commandline cl = SynergyCCM.startRemote( "user", "pass", 
SynergyRole.BUILD_MGR );
+        assertCommandLine( "ccm start -nogui -m -q -rc -n user -pw pass -r 
build_mgr", null, cl );
+    }
 
     public void testStop()
         throws Exception


Reply via email to