Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.guvnor.structure.backend.repositories.git;
  
  import java.net.URI;
  import java.util.HashMap;
  import java.util.HashSet;
  import java.util.List;
  import java.util.Set;
  import  javax.enterprise.context.ApplicationScoped;
 import  javax.inject.Inject;
 import  javax.inject.Named;
 
 import  org.guvnor.structure.repositories.PublicURI;
 import  org.guvnor.structure.repositories.Repository;
 import  org.guvnor.structure.repositories.impl.DefaultPublicURI;
 import  org.guvnor.structure.repositories.impl.git.GitRepository;
 import  org.guvnor.structure.server.config.ConfigGroup;
 import  org.guvnor.structure.server.config.ConfigItem;
 import  org.guvnor.structure.server.config.PasswordService;
 import  org.guvnor.structure.server.config.SecureConfigItem;
 import  org.guvnor.structure.server.repositories.RepositoryFactoryHelper;
 import  org.uberfire.io.IOService;
 import  org.uberfire.java.nio.file.FileSystem;
 import  org.uberfire.java.nio.file.FileSystemAlreadyExistsException;
 import  org.uberfire.java.nio.file.Path;
 
 import static org.guvnor.structure.repositories.impl.git.GitRepository.*;
 import static org.uberfire.backend.server.util.Paths.*;
 import static org.uberfire.commons.validation.Preconditions.*;
 
 @ApplicationScoped
 public class GitRepositoryFactoryHelper implements RepositoryFactoryHelper {
 
     @Inject
     @Named("ioStrategy")
     private IOService ioService;
 
     @Inject
     private PasswordService secureService;
 
     @Override
     public boolean acceptfinal ConfigGroup repoConfig ) {
         checkNotNull( "repoConfig"repoConfig );
         final ConfigItem<StringschemeConfigItem = repoConfig.getConfigItem( . );
         checkNotNull( "schemeConfigItem"schemeConfigItem );
         return SCHEME.equals( schemeConfigItem.getValue() );
     }
 
     @Override
     public Repository newRepositoryfinal ConfigGroup repoConfig ) {
         checkNotNull( "repoConfig"repoConfig );
         final ConfigItem<StringschemeConfigItem = repoConfig.getConfigItem( . );
         checkNotNull( "schemeConfigItem"schemeConfigItem );
 
         String branch = repoConfig.getConfigItemValue( . );
         if ( branch == null ) {
             branch = "master";
         }
 
         final GitRepository repo = new GitRepository( repoConfig.getName() );
         repo.setCurrentBranch( branch );
 
         for ( final ConfigItem item : repoConfig.getItems() ) {
             if ( item instanceof SecureConfigItem ) {
                 repo.addEnvironmentParameter( item.getName(), .decrypt( item.getValue().toString() ) );
             } else {
                 repo.addEnvironmentParameter( item.getName(), item.getValue() );
             }
         }
 
         if ( !repo.isValid() ) {
             throw new IllegalStateException"Repository " + repoConfig.getName() + " not valid" );
         }
 
         FileSystem fs = null;
         URI uri = null;
         try {
             uri = URI.createrepo.getUri() );
             fs = .newFileSystem( urinew HashMap<StringObject>( repo.getEnvironment() ) {{
                 if ( !repo.getEnvironment().containsKey( "origin" ) ) {
                     put"init"true );
                 }
             }} );
         } catch ( final FileSystemAlreadyExistsException e ) {
             fs = .getFileSystem( uri );
         } catch ( final Throwable ex ) {
             throw new RuntimeExceptionex.getCause().getMessage(), ex );
         }
 
         Path defaultRoot = fs.getRootDirectories().iterator().next();
         for ( final Path path : fs.getRootDirectories() ) {
             String gitBranch = getBranchNamepath );
             if ( gitBranch.equalsbranch ) ) {
                 defaultRoot = path;
                 break;
             }
         }
         Set<Stringbranches = new HashSet<String>();
        // collect all branches
        for ( final Path path : fs.getRootDirectories() ) {
            String gitBranch = getBranchNamepath );
            branches.addgitBranch );
        }
        repo.setBranches( branches );
        repo.setRoot( convert( defaultRoot ) );
        final String[] uris = fs.toString().split( "\\r?\\n" );
        final List<PublicURI> publicURIs = new ArrayList<PublicURI>( uris.length );
        for ( final String s : uris ) {
            final int protocolStart = s.indexOf"://" );
            final PublicURI publicURI;
            if ( protocolStart > 0 ) {
                publicURI = new DefaultPublicURI( s.substring( 0, protocolStart ), s );
            } else {
                publicURI = new DefaultPublicURI( s );
            }
            publicURIs.add( publicURI );
        }
        repo.setPublicURIs( publicURIs );
        return repo;
    }
    protected String getBranchNamefinal Path path ) {
        String gitBranch = path.toUri().getAuthority();
        if ( gitBranch.indexOf"@" ) != -1 ) {
            return gitBranch.split"@" )[ 0 ];
        }
        return gitBranch;
    }
New to GrepCode? Check out our FAQ X