Example usage for org.eclipse.jgit.api Git init

List of usage examples for org.eclipse.jgit.api Git init

Introduction

In this page you can find the example usage for org.eclipse.jgit.api Git init.

Prototype

public static InitCommand init() 

Source Link

Document

Return a command object to execute a init command

Usage

From source file:org.basinmc.maven.plugins.minecraft.patch.InitializeRepositoryMojo.java

License:Apache License

/**
 * Initializes the local repository with its default state.
 *///w  w  w  .  j av  a  2  s  .c o  m
private void initializeRepository() throws ArtifactResolutionException, MojoFailureException {
    final Path sourceArtifact;

    {
        Artifact a = this.createArtifactWithClassifier(MINECRAFT_GROUP_ID, this.getModule(),
                this.getMappingArtifactVersion(), "source");
        sourceArtifact = this.findArtifact(a).orElseThrow(() -> new MojoFailureException(
                "Could not locate artifact " + this.getArtifactCoordinateString(a)));
    }

    try {
        Files.createDirectories(this.getSourceDirectory().toPath());
        Git git = Git.init().setDirectory(this.getSourceDirectory()).call();

        AccessTransformationMap transformationMap = null;
        Formatter formatter = null;

        if (this.getAccessTransformation() != null) {
            transformationMap = AccessTransformationMap.read(this.getAccessTransformation().toPath());
            formatter = new Formatter();
        }

        try (ZipFile file = new ZipFile(sourceArtifact.toFile())) {
            Enumeration<? extends ZipEntry> enumeration = file.entries();

            while (enumeration.hasMoreElements()) {
                ZipEntry entry = enumeration.nextElement();
                String name = entry.getName();

                if (!name.endsWith(".java")) {
                    continue;
                }

                Path outputPath = this.getSourceDirectory().toPath().resolve(name);

                if (!Files.isDirectory(outputPath.getParent())) {
                    Files.createDirectories(outputPath.getParent());
                }

                try (InputStream inputStream = file.getInputStream(entry)) {
                    try (FileChannel outputChannel = FileChannel.open(outputPath, StandardOpenOption.CREATE,
                            StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE)) {
                        if (transformationMap != null && transformationMap.getTypeMappings(name).isPresent()) {
                            JavaClassSource classSource = Roaster.parse(JavaClassSource.class, inputStream);
                            this.applyAccessTransformation(transformationMap, classSource);
                            outputChannel.write(ByteBuffer.wrap(formatter.formatSource(classSource.toString())
                                    .getBytes(StandardCharsets.UTF_8)));
                        } else {
                            try (ReadableByteChannel channel = Channels.newChannel(inputStream)) {
                                ByteStreams.copy(channel, outputChannel);
                            }
                        }
                    }
                }

                git.add().addFilepattern(name).call();
            }
        }

        git.commit().setAuthor(ROOT_COMMIT_AUTHOR_NAME, ROOT_COMMIT_AUTHOR_EMAIL)
                .setCommitter(ROOT_COMMIT_AUTHOR_NAME, ROOT_COMMIT_AUTHOR_EMAIL)
                .setMessage("Added decompiled sources.").call();

        git.branchCreate().setName("upstream").call();
    } catch (FormatterException ex) {
        throw new MojoFailureException("Failed to format one or more source files: " + ex.getMessage(), ex);
    } catch (GitAPIException ex) {
        throw new MojoFailureException("Failed to execute Git command: " + ex.getMessage(), ex);
    } catch (IOException ex) {
        throw new MojoFailureException(
                "Failed to access source artifact or write target file: " + ex.getMessage(), ex);
    }
}

From source file:org.cfg4j.source.git.TempConfigurationGitRepo.java

License:Apache License

private Git createLocalRepo(Path path) throws IOException, GitAPIException {
    Files.delete(path);

    return Git.init().setDirectory(path.toFile()).call();
}

From source file:org.cicomponents.test.GitEmitterTest.java

License:Mozilla Public License

@Test
@SneakyThrows/*from   w  w  w.  j a  v  a 2 s  .co m*/
public void listenerDiscovery() {
    try (WorkingDirectory directory = workingDirectoryProvider.getDirectory()) {
        Git git = Git.init().setDirectory(new File(directory.getDirectory())).call();
        RevCommit commit = git.commit().setAllowEmpty(true).setMessage("Test").call();

        Hashtable<String, Object> properties = new Hashtable<>();
        properties.put("repository", "file://" + git.getRepository().getDirectory().getAbsolutePath());
        properties.put("type", "latest");
        Listener listener = new Listener();
        ServiceRegistration<ResourceListener> registration = bundleContext
                .registerService(ResourceListener.class, listener, properties);

        Collection<ServiceReference<GitRevisionEmitter>> references = bundleContext.getServiceReferences(
                GitRevisionEmitter.class, "(objectClass=" + GitRevisionEmitter.class.getName() + ")");
        assertFalse(references.isEmpty());

        registration.unregister();

        git.close();
    }
}

From source file:org.cicomponents.test.GitEmitterTest.java

License:Mozilla Public License

@Test
@SneakyThrows//from  w  w w  .  j a  v a  2s. c  o  m
public void listenerRemoval() {
    try (WorkingDirectory directory = workingDirectoryProvider.getDirectory()) {
        Git git = Git.init().setDirectory(new File(directory.getDirectory())).call();
        RevCommit commit = git.commit().setAllowEmpty(true).setMessage("Test").call();

        Hashtable<String, Object> properties = new Hashtable<>();
        properties.put("repository", "file://" + git.getRepository().getDirectory().getAbsolutePath());
        properties.put("type", "latest");
        Listener listener = new Listener();
        ServiceRegistration<ResourceListener> registration = bundleContext
                .registerService(ResourceListener.class, listener, properties);

        Collection<ServiceReference<GitRevisionEmitter>> references = bundleContext.getServiceReferences(
                GitRevisionEmitter.class, "(objectClass=" + GitRevisionEmitter.class.getName() + ")");
        assertFalse(references.isEmpty());

        ObjectId objectId = listener.getFuture().get();
        assertEquals(commit.toObjectId(), objectId);
        listener.reset();

        registration.unregister();

        git.commit().setAllowEmpty(true).setMessage("Test #1").call();

        try {
            listener.getFuture().get(11, TimeUnit.SECONDS);
            fail("Listener was not removed");
        } catch (TimeoutException e) {
            // this is what should happen
        }

        git.close();
    }
}

From source file:org.cicomponents.test.GitEmitterTest.java

License:Mozilla Public License

@Test
@SneakyThrows//w  ww.j av a 2 s.c o m
public void listener() {
    try (WorkingDirectory directory = workingDirectoryProvider.getDirectory()) {
        Git git = Git.init().setDirectory(new File(directory.getDirectory())).call();
        RevCommit commit = git.commit().setAllowEmpty(true).setMessage("Test").call();

        Hashtable<String, Object> properties = new Hashtable<>();
        properties.put("repository", "file://" + git.getRepository().getDirectory().getAbsolutePath());
        properties.put("type", "latest");
        Listener listener = new Listener();
        ServiceRegistration<ResourceListener> registration = bundleContext
                .registerService(ResourceListener.class, listener, properties);

        Collection<ServiceReference<GitRevisionEmitter>> references = bundleContext.getServiceReferences(
                GitRevisionEmitter.class, "(objectClass=" + GitRevisionEmitter.class.getName() + ")");

        ObjectId objectId = listener.getFuture().get();
        assertEquals(commit.toObjectId(), objectId);
        listener.reset();

        // Test ongoing commits
        commit = git.commit().setAllowEmpty(true).setMessage("Test #1").call();

        objectId = listener.getFuture().get();
        assertEquals(commit.toObjectId(), objectId);

        git.close();
        registration.unregister();
    }
}

From source file:org.craftercms.commons.git.impl.GitRepositoryFactoryImpl.java

License:Open Source License

@Override
public GitRepository init(File dir, boolean bare) throws GitException {
    try {/*from w ww .  j a va 2  s .co m*/
        Git git = Git.init().setDirectory(dir).setBare(bare).call();

        logger.info("New Git repository created at {}", git.getRepository().getDirectory());

        return new GitRepositoryImpl(git);
    } catch (GitAPIException e) {
        throw new GitException("Error creating new Git repository in " + dir, e);
    }
}

From source file:org.craftercms.commons.git.impl.GitRepositoryFactoryImplTest.java

License:Open Source License

@Test
public void testOpen() throws Exception {
    Git git = Git.init().setDirectory(tmpDir.getRoot()).call();

    GitRepository repo = repositoryFactory.open(tmpDir.getRoot());

    assertNotNull(repo);/*from   w w  w.j  a  v  a 2 s .  co  m*/
    assertEquals(git.getRepository().getDirectory().getCanonicalPath(), repo.getDirectory().getCanonicalPath());
}

From source file:org.craftercms.commons.git.impl.GitRepositoryFactoryImplTest.java

License:Open Source License

@Test
public void testClone() throws Exception {
    File masterRepoDir = tmpDir.newFolder("master");
    File cloneRepoDir = tmpDir.newFolder("clone");

    try (Git git = Git.init().setDirectory(masterRepoDir).call()) {
        File testFile = new File(masterRepoDir, "test");
        testFile.createNewFile();//from w  w w  . j ava2 s.  co m

        git.add().addFilepattern("test").call();
        git.commit().setMessage("Test commit").call();
    }

    GitRepository repo = repositoryFactory.clone(masterRepoDir.getAbsolutePath(), cloneRepoDir);

    assertNotNull(repo);

    File[] files = cloneRepoDir.listFiles();

    assertNotNull(files);
    assertEquals(2, files.length);

    File gitDir = findFile(".git", files);
    assertNotNull(gitDir);
    assertTrue(gitDir.isDirectory());

    File testFile = findFile("test", files);
    assertNotNull(testFile);
    assertFalse(testFile.isDirectory());
}

From source file:org.craftercms.commons.git.impl.GitRepositoryImplTest.java

License:Open Source License

@Test
public void testAdd() throws Exception {
    Git git = Git.init().setDirectory(tmpDir.getRoot()).call();
    GitRepositoryImpl repository = new GitRepositoryImpl(git);

    File testFile = new File(tmpDir.getRoot(), "test");
    testFile.createNewFile();/* ww w  . j a  va 2  s. co m*/

    repository.add("test");

    Status status = git.status().call();

    assertNotNull(status);
    assertEquals(Collections.singleton("test"), status.getAdded());
}

From source file:org.craftercms.commons.git.impl.GitRepositoryImplTest.java

License:Open Source License

@Test
public void testRemove() throws Exception {
    Git git = Git.init().setDirectory(tmpDir.getRoot()).call();
    GitRepositoryImpl repository = new GitRepositoryImpl(git);

    File testFile = new File(tmpDir.getRoot(), "test");
    testFile.createNewFile();//from   www .j  a v a  2 s  . c o  m

    git.add().addFilepattern("test").call();
    git.commit().setMessage("Test commit").call();

    repository.remove("test");

    Status status = git.status().call();

    assertNotNull(status);
    assertEquals(Collections.singleton("test"), status.getRemoved());
}