use of io.fabric8.api.GitContext in project fabric8 by jboss-fuse.
the class DummyBatchingProgressMonitor method doPullInternal.
private PullPolicyResult doPullInternal(GitContext context, CredentialsProvider credentialsProvider, boolean allowVersionDelete, boolean allowPush, int forcedTimeoutInSeconds) {
PullPolicyResult pullResult = pullPushPolicy.doPull(context, credentialsProvider, allowVersionDelete, allowPush, forcedTimeoutInSeconds);
if (pullResult.getLastException() == null) {
Map<String, PullPushPolicy.BranchChange> updatedVersions = pullResult.localUpdateVersions();
if (!updatedVersions.isEmpty()) {
if (updatedVersions.containsKey(GitHelpers.MASTER_BRANCH)) {
versionCache.invalidateAll();
} else {
for (String version : updatedVersions.keySet()) {
versionCache.invalidate(version);
}
}
notificationRequired = true;
}
Set<String> pullVersions = pullResult.getVersions();
if (!pullVersions.isEmpty() && !pullVersions.equals(versions)) {
versions.clear();
for (String v : pullVersions) {
if (!v.startsWith("patches-") && !v.startsWith("patch-") && !v.equals(HISTORY_BRANCH) && !v.equals(ADMIN_HISTORY_BRANCH)) {
versions.add(v);
}
}
}
if (pullResult.remoteUpdateRequired()) {
doPushInternal(context, credentialsProvider);
}
}
return pullResult;
}
use of io.fabric8.api.GitContext 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();
}
}
use of io.fabric8.api.GitContext in project fabric8 by jboss-fuse.
the class PushPullPolicyIT method noUpdates.
@Test
public void noUpdates() {
PullPushPolicy.PullPolicyResult result = policy.doPull(new GitContext(), CP, true);
assertNull(result.getLastException());
List<String> versions = new ArrayList<>(result.getVersions());
// these are sorted (TreeSet)
assertThat(versions.get(0), equalTo("1.0"));
assertThat(versions.get(1), equalTo("1.0.1"));
assertThat(versions.get(2), equalTo("1.1"));
assertThat(versions.get(3), equalTo("1.2"));
assertThat(versions.get(4), equalTo("master"));
assertTrue(result.localUpdateVersions().isEmpty());
assertFalse(result.remoteUpdateRequired());
}
use of io.fabric8.api.GitContext in project fabric8 by jboss-fuse.
the class PushPullPolicyIT method remoteRemovalOfSingleBranchWhenLocalBranchIsAheadAndNotCheckedOut.
@Test
public void remoteRemovalOfSingleBranchWhenLocalBranchIsAheadAndNotCheckedOut() throws GitAPIException, IOException {
servlet.branchDelete().setForce(true).setBranchNames("1.1").call();
local.checkout().setName("1.1").setCreateBranch(false).call();
editVersion("1.1", 4, false);
local.checkout().setName("1.0").setCreateBranch(false).call();
PullPushPolicy.PullPolicyResult result = policy.doPull(new GitContext(), CP, true);
assertNull(result.getLastException());
List<String> versions = new ArrayList<>(result.getVersions());
// these are sorted (TreeSet)
assertThat(versions.size(), equalTo(4));
assertThat(versions.get(0), equalTo("1.0"));
assertThat(versions.get(1), equalTo("1.0.1"));
assertThat(versions.get(2), equalTo("1.2"));
assertThat(versions.get(3), equalTo("master"));
List<String> localUpdateVersions = new ArrayList<>(result.localUpdateVersions().keySet());
assertThat(localUpdateVersions.size(), equalTo(1));
assertThat(localUpdateVersions.get(0), equalTo("1.1"));
assertFalse(result.remoteUpdateRequired());
List<Ref> localBranches = local.branchList().call();
assertThat(localBranches.size(), equalTo(4));
assertNull(local.getRepository().getRef("1.1"));
}
use of io.fabric8.api.GitContext in project fabric8 by jboss-fuse.
the class PushPullPolicyIT method remoteUpdateWhenLocalBranchIsCheckedOutAndNotClean.
@Test
public void remoteUpdateWhenLocalBranchIsCheckedOutAndNotClean() throws GitAPIException, IOException {
editVersion("1.1", 2, true);
local.checkout().setName("1.1").setCreateBranch(false).call();
FileUtils.write(new File(dirLocal, "newFile.txt"), "~");
FileUtils.write(new File(dirLocal, "fabric/profiles/default.profile/my.special.pid.properties"), "\n# new line", true);
assertFalse(local.status().call().isClean());
PullPushPolicy.PullPolicyResult result = policy.doPull(new GitContext(), CP, true);
assertNull(result.getLastException());
List<String> versions = new ArrayList<>(result.getVersions());
// these are sorted (TreeSet)
assertThat(versions.size(), equalTo(5));
assertThat(versions.get(0), equalTo("1.0"));
assertThat(versions.get(1), equalTo("1.0.1"));
assertThat(versions.get(2), equalTo("1.1"));
assertThat(versions.get(3), equalTo("1.2"));
assertThat(versions.get(4), equalTo("master"));
List<String> localUpdateVersions = new ArrayList<>(result.localUpdateVersions().keySet());
assertThat(localUpdateVersions.size(), equalTo(1));
assertThat(localUpdateVersions.get(0), equalTo("1.1"));
assertFalse(result.remoteUpdateRequired());
List<Ref> localBranches = local.branchList().call();
assertThat(localBranches.size(), equalTo(5));
assertNotNull(local.getRepository().getRef("1.1"));
}
Aggregations