Search in sources :

Example 6 with Source

use of org.guvnor.ala.source.Source in project kie-wb-common by kiegroup.

the class GitConfigExecutor method apply.

@Override
public Optional<Source> apply(final GitConfig gitConfig) {
    checkNotEmpty("repo-name parameter is mandatory", gitConfig.getRepoName());
    if (Boolean.parseBoolean(gitConfig.getCreateRepo())) {
        final URI uri = URI.create("git://" + gitConfig.getRepoName());
        FileSystems.newFileSystem(uri, new HashMap<String, Object>() {

            {
                if (gitConfig.getOrigin() != null && !gitConfig.getOrigin().isEmpty()) {
                    put("origin", gitConfig.getOrigin());
                } else {
                    put("init", Boolean.TRUE);
                }
                if (gitConfig.getOutPath() != null && !gitConfig.getOutPath().isEmpty()) {
                    put("out-dir", gitConfig.getOutPath());
                }
            }
        });
    } else {
        final URI uri = URI.create("git://" + gitConfig.getRepoName() + "?sync");
        try {
            FileSystems.getFileSystem(uri);
        } catch (Exception ex) {
        // The repo might not support sync, because it doesn't have an origin, we should move forward for now.
        }
    }
    final GitRepository gitRepository = (GitRepository) new UFLocal().getRepository(gitConfig.getRepoName(), Collections.emptyMap());
    final Optional<Source> source_ = Optional.ofNullable(gitRepository.getSource((gitConfig.getBranch() != null && !gitConfig.getBranch().isEmpty()) ? gitConfig.getBranch() : "master"));
    if (source_.isPresent()) {
        Source source = source_.get();
        sourceRegistry.registerRepositorySources(source.getPath(), gitRepository);
        sourceRegistry.registerSource(gitRepository, source);
    }
    return source_;
}
Also used : GitRepository(org.guvnor.ala.source.git.GitRepository) URI(java.net.URI) UFLocal(org.guvnor.ala.source.git.UFLocal) Source(org.guvnor.ala.source.Source)

Example 7 with Source

use of org.guvnor.ala.source.Source in project kie-wb-common by kiegroup.

the class UFLocalTestJUnitTest method sourceCloneTest.

@Test
public void sourceCloneTest() throws Exception {
    final URI uri = URI.create("git://tempx");
    final FileSystem fs = FileSystems.newFileSystem(uri, new HashMap<String, Object>() {

        {
            put("init", Boolean.TRUE);
            put("internal", Boolean.TRUE);
            put("out-dir", tempPath.getAbsolutePath());
        }
    });
    final UFLocal local = new UFLocal();
    final GitRepository repository = (GitRepository) local.getRepository("tempx", Collections.emptyMap());
    final Source source = repository.getSource("master");
    assertNotNull(source);
    assertEquals(source.getPath().getFileSystem(), fs);
}
Also used : GitRepository(org.guvnor.ala.source.git.GitRepository) FileSystem(org.uberfire.java.nio.file.FileSystem) URI(java.net.URI) UFLocal(org.guvnor.ala.source.git.UFLocal) Source(org.guvnor.ala.source.Source) Test(org.junit.Test)

Aggregations

Source (org.guvnor.ala.source.Source)7 Test (org.junit.Test)5 InMemorySourceRegistry (org.guvnor.ala.registry.inmemory.InMemorySourceRegistry)4 GitConfigImpl (org.guvnor.ala.source.git.config.impl.GitConfigImpl)4 GitConfigExecutor (org.guvnor.ala.source.git.executor.GitConfigExecutor)4 URI (java.net.URI)3 File (java.io.File)2 InputStream (java.io.InputStream)2 ArrayList (java.util.ArrayList)2 MavenProject (org.apache.maven.project.MavenProject)2 RepositoryVisitor (org.guvnor.ala.build.maven.util.RepositoryVisitor)2 GitRepository (org.guvnor.ala.source.git.GitRepository)2 UFLocal (org.guvnor.ala.source.git.UFLocal)2 FileSystem (org.uberfire.java.nio.file.FileSystem)2 Path (org.uberfire.java.nio.file.Path)2 BufferedReader (java.io.BufferedReader)1 InputStreamReader (java.io.InputStreamReader)1 PipedInputStream (java.io.PipedInputStream)1 PipedOutputStream (java.io.PipedOutputStream)1 PrintStream (java.io.PrintStream)1