/** * The method that is used to determine the SCM type based on the SCM url pattern * @see <a href="https://maven.apache.org/components/scm/scm-url-format.html">Maven SCM URL Format</a> * @param scmUrl - the SCM url that needs to be parsed to determine the SCM type, the value of url is typically the * "connection" or "developerConnection" element value of the maven <scm/> * @return String - the SCM type, e.g. for git it will be "git" , for subversion it will be "svn" * @throws ScmRepositoryException - any SCM related exceptions that might happen when checking the SCM type * @throws NoSuchScmProviderException - if an invalid url is given as part of maven <scm> "connection" or "developerConnection" */ public String getScmType(String scmUrl) throws ScmRepositoryException, NoSuchScmProviderException { return ScmUrlUtils.getProvider(scmUrl); }
/** * {@inheritDoc} */ public ScmProvider getProviderByUrl( String scmUrl ) throws ScmRepositoryException, NoSuchScmProviderException { if ( scmUrl == null ) { throw new NullPointerException( "The scm url cannot be null." ); } String providerType = ScmUrlUtils.getProvider( scmUrl ); return getProviderByType( providerType ); }
/** * {@inheritDoc} */ public ScmProvider getProviderByUrl( String scmUrl ) throws ScmRepositoryException, NoSuchScmProviderException { if ( scmUrl == null ) { throw new NullPointerException( "The scm url cannot be null." ); } String providerType = ScmUrlUtils.getProvider( scmUrl ); return getProviderByType( providerType ); }
/** * {@inheritDoc} */ public ScmRepository makeScmRepository( String scmUrl ) throws ScmRepositoryException, NoSuchScmProviderException { if ( scmUrl == null ) { throw new NullPointerException( "The scm url cannot be null." ); } char delimiter = ScmUrlUtils.getDelimiter( scmUrl ).charAt( 0 ); String providerType = ScmUrlUtils.getProvider( scmUrl ); ScmProvider provider = getProviderByType( providerType ); String scmSpecificUrl = cleanScmUrl( scmUrl.substring( providerType.length() + 5 ) ); ScmProviderRepository providerRepository = provider.makeProviderScmRepository( scmSpecificUrl, delimiter ); return new ScmRepository( providerType, providerRepository ); }
/** * {@inheritDoc} */ public ScmRepository makeScmRepository( String scmUrl ) throws ScmRepositoryException, NoSuchScmProviderException { if ( scmUrl == null ) { throw new NullPointerException( "The scm url cannot be null." ); } char delimiter = ScmUrlUtils.getDelimiter( scmUrl ).charAt( 0 ); String providerType = ScmUrlUtils.getProvider( scmUrl ); ScmProvider provider = getProviderByType( providerType ); String scmSpecificUrl = cleanScmUrl( scmUrl.substring( providerType.length() + 5 ) ); ScmProviderRepository providerRepository = provider.makeProviderScmRepository( scmSpecificUrl, delimiter ); return new ScmRepository( providerType, providerRepository ); }
/** * {@inheritDoc} */ public List<String> validateScmRepository( String scmUrl ) { List<String> messages = new ArrayList<String>(); messages.addAll( ScmUrlUtils.validate( scmUrl ) ); String providerType = ScmUrlUtils.getProvider( scmUrl ); ScmProvider provider; try { provider = getProviderByType( providerType ); } catch ( NoSuchScmProviderException e ) { messages.add( "No such provider installed '" + providerType + "'." ); return messages; } String scmSpecificUrl = cleanScmUrl( scmUrl.substring( providerType.length() + 5 ) ); List<String> providerMessages = provider.validateScmUrl( scmSpecificUrl, ScmUrlUtils.getDelimiter( scmUrl ).charAt( 0 ) ); if ( providerMessages == null ) { throw new RuntimeException( "The SCM provider cannot return null from validateScmUrl()." ); } messages.addAll( providerMessages ); return messages; }
String providerType = ScmUrlUtils.getProvider( scmUrl );
/** * {@inheritDoc} */ public List<String> validateScmRepository( String scmUrl ) { List<String> messages = new ArrayList<String>(); messages.addAll( ScmUrlUtils.validate( scmUrl ) ); String providerType = ScmUrlUtils.getProvider( scmUrl ); ScmProvider provider; try { provider = getProviderByType( providerType ); } catch ( NoSuchScmProviderException e ) { messages.add( "No such provider installed '" + providerType + "'." ); return messages; } String scmSpecificUrl = cleanScmUrl( scmUrl.substring( providerType.length() + 5 ) ); List<String> providerMessages = provider.validateScmUrl( scmSpecificUrl, ScmUrlUtils.getDelimiter( scmUrl ).charAt( 0 ) ); if ( providerMessages == null ) { throw new RuntimeException( "The SCM provider cannot return null from validateScmUrl()." ); } messages.addAll( providerMessages ); return messages; }
String providerType = ScmUrlUtils.getProvider( releaseDescriptor.getScmSourceUrl() ); String scmSpecificUrl = releaseDescriptor.getScmSourceUrl().substring( providerType.length() + 5 );