### Question:
ScmManager extends AbstractScmManager { @Override protected ScmLogger getScmLogger() { return scmLogger; }  @Override void setScmProviders( Map providers ); void setScmLogger( ScmLogger scmLogger );  }### Answer:
@Test public void testScmProviders() throws NoSuchScmProviderException { Properties backupSysProps = System.getProperties(); try { manager.getScmLogger().info( "Hello, World" ); assertNotNull( manager.getProviderByType( "svn" ) ); ScmProvider cvsProvider = manager.getProviderByType( "cvs" ); assertNotNull( cvsProvider ); log.info( "cvs provider class " + cvsProvider.getClass().getName() ); assertEquals( CvsJavaScmProvider.class, cvsProvider.getClass() ); System.setProperty( "maven.scm.provider.cvs.implementation", "cvs_native" ); cvsProvider = manager.getProviderByType( "cvs" ); assertNotNull( cvsProvider ); log.info( "cvs provider class " + cvsProvider.getClass().getName() ); assertEquals( CvsExeScmProvider.class, cvsProvider.getClass() ); System.setProperty( "maven.scm.provider.cvs.implementation", "cvs" ); cvsProvider = manager.getProviderByType( "cvs" ); assertNotNull( cvsProvider ); log.info( "cvs provider class " + cvsProvider.getClass().getName() ); assertEquals( CvsJavaScmProvider.class, cvsProvider.getClass() ); } finally { System.setProperties( backupSysProps ); System.setProperty( "maven.scm.provider.cvs.implementation", "cvs" ); } }