Search in sources :

Example 1 with GitOperation

use of io.fabric8.git.internal.GitOperation in project fabric8 by jboss-fuse.

the class DummyBatchingProgressMonitor method gitOperation.

@Override
public <T> T gitOperation(GitContext context, GitOperation<T> gitop, PersonIdent personIdent) {
    IllegalArgumentAssertion.assertNotNull(gitop, "gitop");
    IllegalArgumentAssertion.assertNotNull(context, "context");
    LockHandle writeLock = aquireWriteLock();
    try {
        assertValid();
        LOGGER.debug("External call to execute a git operation: " + gitop);
        return executeInternal(context, personIdent, gitop);
    } finally {
        writeLock.unlock();
    }
}
Also used : LockHandle(io.fabric8.api.LockHandle)

Example 2 with GitOperation

use of io.fabric8.git.internal.GitOperation in project fabric8 by jboss-fuse.

the class DummyBatchingProgressMonitor method gitVersions.

@Override
public GitVersions gitVersions() {
    LockHandle readLock = aquireReadLock();
    try {
        assertValid();
        GitOperation<GitVersions> gitop = new GitOperation<GitVersions>() {

            public GitVersions call(Git git, GitContext context) throws Exception {
                List<GitVersion> localVersions = GitHelpers.gitVersions(git);
                return new GitVersions(localVersions);
            }
        };
        return executeInternal(newGitReadContext(), null, gitop);
    } finally {
        readLock.unlock();
    }
}
Also used : LockHandle(io.fabric8.api.LockHandle) Git(org.eclipse.jgit.api.Git) GitVersion(io.fabric8.api.commands.GitVersion) GitVersions(io.fabric8.api.commands.GitVersions) GitContext(io.fabric8.api.GitContext)

Example 3 with GitOperation

use of io.fabric8.git.internal.GitOperation in project fabric8 by jboss-fuse.

the class DummyBatchingProgressMonitor method createProfile.

@Override
public String createProfile(GitContext context, final Profile profile) {
    IllegalStateAssertion.assertNotNull(profile, "profile");
    LockHandle writeLock = aquireWriteLock();
    try {
        assertValid();
        GitOperation<String> gitop = new GitOperation<String>() {

            public String call(Git git, GitContext context) throws Exception {
                String versionId = profile.getVersion();
                String profileId = profile.getId();
                Version version = getRequiredVersion(versionId);
                IllegalStateAssertion.assertFalse(version.hasProfile(profileId), "Profile already exists: " + profileId);
                checkoutRequiredProfileBranch(git, context, versionId, profileId);
                return createOrUpdateProfile(context, null, profile, new HashSet<String>());
            }
        };
        return executeInternal(context, null, gitop);
    } finally {
        writeLock.unlock();
    }
}
Also used : LockHandle(io.fabric8.api.LockHandle) Git(org.eclipse.jgit.api.Git) GitContext(io.fabric8.api.GitContext) GitVersion(io.fabric8.api.commands.GitVersion) Version(io.fabric8.api.Version)

Example 4 with GitOperation

use of io.fabric8.git.internal.GitOperation in project fabric8 by jboss-fuse.

the class DummyBatchingProgressMonitor method hasVersion.

@Override
public boolean hasVersion(GitContext context, final String versionId) {
    IllegalStateAssertion.assertNotNull(versionId, "versionId");
    LockHandle readLock = aquireReadLock();
    try {
        assertValid();
        GitOperation<Boolean> gitop = new GitOperation<Boolean>() {

            public Boolean call(Git git, GitContext context) throws Exception {
                return versions.contains(versionId);
            }
        };
        return executeInternal(context, null, gitop);
    } finally {
        readLock.unlock();
    }
}
Also used : LockHandle(io.fabric8.api.LockHandle) Git(org.eclipse.jgit.api.Git) GitContext(io.fabric8.api.GitContext)

Example 5 with GitOperation

use of io.fabric8.git.internal.GitOperation in project fabric8 by jboss-fuse.

the class DummyBatchingProgressMonitor method getVersionIds.

@Override
public List<String> getVersionIds(GitContext context) {
    LockHandle readLock = aquireReadLock();
    try {
        assertValid();
        GitOperation<List<String>> gitop = new GitOperation<List<String>>() {

            public List<String> call(Git git, GitContext context) throws Exception {
                List<String> result = new ArrayList<>(versions);
                // we do not want to expose master branch as a version
                if (result.contains(GitHelpers.MASTER_BRANCH)) {
                    result.remove(GitHelpers.MASTER_BRANCH);
                }
                Collections.sort(result, VersionSequence.getComparator());
                return Collections.unmodifiableList(result);
            }
        };
        return executeInternal(context, null, gitop);
    } finally {
        readLock.unlock();
    }
}
Also used : LockHandle(io.fabric8.api.LockHandle) Git(org.eclipse.jgit.api.Git) GitContext(io.fabric8.api.GitContext)

Aggregations

Git (org.eclipse.jgit.api.Git)22 GitContext (io.fabric8.api.GitContext)21 LockHandle (io.fabric8.api.LockHandle)14 IOException (java.io.IOException)8 GitAPIException (org.eclipse.jgit.api.errors.GitAPIException)8 File (java.io.File)7 PersonIdent (org.eclipse.jgit.lib.PersonIdent)7 FabricException (io.fabric8.api.FabricException)3 Profile (io.fabric8.api.Profile)3 GitVersion (io.fabric8.api.commands.GitVersion)2 GitOperation (io.fabric8.git.internal.GitOperation)2 MalformedURLException (java.net.MalformedURLException)2 KeeperException (org.apache.zookeeper.KeeperException)2 RevCommit (org.eclipse.jgit.revwalk.RevCommit)2 DataStoreTemplate (io.fabric8.api.DataStoreTemplate)1 ProfileRegistry (io.fabric8.api.ProfileRegistry)1 ProfileService (io.fabric8.api.ProfileService)1 Version (io.fabric8.api.Version)1 GitVersions (io.fabric8.api.commands.GitVersions)1 GitProxyService (io.fabric8.git.GitProxyService)1