Skip to content

Commit 9d96d29

Browse files
fix pull after link in current thread & removed old pull coding (#283)
1 parent 7e72d37 commit 9d96d29

File tree

4 files changed

+115
-466
lines changed

4 files changed

+115
-466
lines changed

org.abapgit.adt.ui/src/org/abapgit/adt/ui/internal/repositories/AbapGitView.java

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.abapgit.adt.ui.internal.util.IAbapGitService;
2727
import org.abapgit.adt.ui.internal.wizards.AbapGitWizard;
2828
import org.abapgit.adt.ui.internal.wizards.AbapGitWizardPull;
29-
import org.abapgit.adt.ui.internal.wizards.AbapGitWizardPullV2;
3029
import org.eclipse.core.resources.IProject;
3130
import org.eclipse.core.runtime.FileLocator;
3231
import org.eclipse.core.runtime.IProgressMonitor;
@@ -551,33 +550,9 @@ public void run() {
551550
allRepositories.addAll(viewerRepositories);
552551
}
553552

554-
// AbapGitWizardPullV2 handles selective pulling
555-
//The following compatibility handling is only valid from 2105 Release with selective pull feature
556-
WizardDialog wizardDialog;
557-
if (AbapGitView.this.abapGitService.isSelectivePullSupported(this.selRepo)) {
558-
wizardDialog = new WizardDialog(AbapGitView.this.viewer.getControl().getShell(),
559-
new AbapGitWizardPullV2(AbapGitView.this.lastProject, this.selRepo, allRepositories));
560-
wizardDialog.open();
561-
562-
} else {
563-
//TODO: Remove after all customers update back end versions which support selective pull feature
564-
// AbapGitWizardPull handles backend versions before 2105 where selective pull feature is not supported
565-
566-
wizardDialog = new WizardDialog(AbapGitView.this.viewer.getControl().getShell(),
567-
new AbapGitWizardPull(AbapGitView.this.lastProject, this.selRepo, allRepositories));
568-
569-
// customized MessageDialog with configured buttons
570-
MessageDialog dialog = new MessageDialog(getSite().getShell(), Messages.AbapGitView_ConfDialog_title, null,
571-
Messages.AbapGitView_ConfDialog_MsgText, MessageDialog.CONFIRM,
572-
new String[] { Messages.AbapGitView_ConfDialog_Btn_confirm, Messages.AbapGitView_ConfDialog_Btn_cancel },
573-
0);
574-
int confirmResult = dialog.open();
575-
if (confirmResult == 0) {
576-
wizardDialog.open();
577-
}
578-
579-
}
580-
553+
WizardDialog wizardDialog = new WizardDialog(AbapGitView.this.viewer.getControl().getShell(),
554+
new AbapGitWizardPull(AbapGitView.this.lastProject, this.selRepo, allRepositories));
555+
wizardDialog.open();
581556
}
582557

583558
updateView(true);

org.abapgit.adt.ui/src/org/abapgit/adt/ui/internal/wizards/AbapGitWizard.java

Lines changed: 29 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,7 @@ public AbapGitWizard(IProject project) {
8181
@Override
8282
public void addPages() {
8383
this.pageRepo = new AbapGitWizardPageRepositoryAndCredentials(this.project, this.destination, this.cloneData, false);
84-
this.pageBranchAndPackage = new AbapGitWizardPageBranchAndPackage(this.project, this.destination, this.cloneData,
85-
false);
84+
this.pageBranchAndPackage = new AbapGitWizardPageBranchAndPackage(this.project, this.destination, this.cloneData, false);
8685
this.pageFolderlogic = new AbapGitWizardPageFolderLogic(this.project, this.destination, this.cloneData);
8786
this.transportService = AdtTransportServiceFactory.createTransportService(this.destination);
8887
this.pageApack = new AbapGitWizardPageApack(this.destination, this.cloneData, this.transportService, false);
@@ -123,14 +122,14 @@ public void run(IProgressMonitor monitor) throws InvocationTargetException, Inte
123122
repositoriesToLink.getRepositories()
124123
.add(createRepository(AbapGitWizard.this.cloneData.url, AbapGitWizard.this.cloneData.branch,
125124
AbapGitWizard.this.cloneData.packageRef.getName(), AbapGitWizard.this.transportRequest,
126-
AbapGitWizard.this.cloneData.user, AbapGitWizard.this.cloneData.pass));
125+
AbapGitWizard.this.cloneData.user, AbapGitWizard.this.cloneData.pass));
127126
for (IApackDependency apackDependency : AbapGitWizard.this.cloneData.apackManifest.getDescriptor()
128127
.getDependencies()) {
129128
if (apackDependency.requiresSynchronization()) {
130129
repositoriesToLink.getRepositories()
131130
.add(createRepository(apackDependency.getGitUrl(), IApackManifest.MASTER_BRANCH,
132131
apackDependency.getTargetPackage().getName(), AbapGitWizard.this.transportRequest,
133-
AbapGitWizard.this.cloneData.user, AbapGitWizard.this.cloneData.pass));
132+
AbapGitWizard.this.cloneData.user, AbapGitWizard.this.cloneData.pass));
134133
}
135134
}
136135
repoService.cloneRepositories(repositoriesToLink, monitor);
@@ -143,26 +142,15 @@ public void run(IProgressMonitor monitor) throws InvocationTargetException, Inte
143142
//if due to some reason the linkedRepo is not returned by the URL
144143
throw new InterruptedException(AbapGitWizard.this.ErrorMessageRetrievingLinkedRepo);
145144
}
146-
//TODO: Remove
147-
//This is valid only for back end versions before 2105 where selective pull is not supported.
148-
//Required for Compatibility handling for Selective Pull
149-
// If selectivePull is not supported pull all objects from the repositories.
150-
// Otherwise a new wizard is opened to allow selective pulling of objects
151-
if (abapGitService.isSelectivePullSupported(linkedRepo)
152-
&& fillModifiedObjectsinCloneData(repoService, linkedRepo)) {
153-
openSelectivePullWizard();
154-
} else {
155-
//Pull all objects for linked repositories
156-
pullLinkedRepositories(monitor, repoService, repositoriesToLink);
157-
}
145+
146+
fillModifiedObjectsinCloneData(repoService, linkedRepo);
147+
openSelectivePullWizard();
158148
}
159149
} else {
160150
List<IAbapObject> abapObjects = repoService.cloneRepository(AbapGitWizard.this.cloneData.url,
161151
AbapGitWizard.this.cloneData.branch, AbapGitWizard.this.cloneData.packageRef.getName(),
162-
AbapGitWizard.this.cloneData.folderLogic,
163-
AbapGitWizard.this.transportRequest, AbapGitWizard.this.cloneData.user, AbapGitWizard.this.cloneData.pass,
164-
monitor)
165-
.getAbapObjects();
152+
AbapGitWizard.this.cloneData.folderLogic, AbapGitWizard.this.transportRequest,
153+
AbapGitWizard.this.cloneData.user, AbapGitWizard.this.cloneData.pass, monitor).getAbapObjects();
166154
cloneObjects.addAll(abapObjects);
167155

168156
//-> Check if link and pull sequence is set
@@ -196,15 +184,16 @@ && fillModifiedObjectsinCloneData(repoService, linkedRepo)) {
196184
}
197185
}
198186

199-
private void pullLinkedRepositories(IProgressMonitor monitor, IRepositoryService repoService, IRepositories repositoriesToLink) {
187+
private void pullLinkedRepositories(IProgressMonitor monitor, IRepositoryService repoService,
188+
IRepositories repositoriesToLink) {
200189
// Need to retrieve linked repositories as only they contain the PULL link needed to continue...
201190
IRepositories linkedRepositories = repoService.getRepositories(monitor);
202191
for (IRepository repository : repositoriesToLink.getRepositories()) {
203192
IRepository linkedRepository = repoService.getRepositoryByURL(linkedRepositories, repository.getUrl());
204193
if (linkedRepository != null) {
205194
repoService.pullRepository(linkedRepository, linkedRepository.getBranchName(),
206-
AbapGitWizard.this.transportPage.getTransportRequestNumber(),
207-
AbapGitWizard.this.cloneData.user, AbapGitWizard.this.cloneData.pass, monitor);
195+
AbapGitWizard.this.transportPage.getTransportRequestNumber(), AbapGitWizard.this.cloneData.user,
196+
AbapGitWizard.this.cloneData.pass, monitor);
208197
}
209198
}
210199
}
@@ -270,10 +259,11 @@ public void handlePageChanging(final PageChangingEvent event) {
270259

271260
//-> Any Page -> Folder Logic page
272261
//(If only linking a repository and no APACK dependencies, no need to show transport page and finish wizard )
273-
if (event.getTargetPage() == AbapGitWizard.this.pageFolderlogic && !AbapGitWizard.this.pageBranchAndPackage.getLnpSequence() && !AbapGitWizard.this.cloneData.hasDependencies() ) {
274-
AbapGitWizard.this.transportPage.setPageComplete(true);
275-
AbapGitWizard.this.pageFolderlogic.setPageComplete(true);
276-
}
262+
if (event.getTargetPage() == AbapGitWizard.this.pageFolderlogic && !AbapGitWizard.this.pageBranchAndPackage.getLnpSequence()
263+
&& !AbapGitWizard.this.cloneData.hasDependencies()) {
264+
AbapGitWizard.this.transportPage.setPageComplete(true);
265+
AbapGitWizard.this.pageFolderlogic.setPageComplete(true);
266+
}
277267

278268
// -> Folder Logic page -> Branch & Package page
279269
if (event.getCurrentPage() == AbapGitWizard.this.pageFolderlogic
@@ -317,7 +307,7 @@ public void handlePageChanging(final PageChangingEvent event) {
317307
public IWizardPage getNextPage(IWizardPage page) {
318308

319309
if (page.equals(this.pageBranchAndPackage)) {
320-
if(!AbapGitUIServiceFactory.createAbapGitService().isFolderLogicSupportedWhileLink(this.cloneData.repositories)) {
310+
if (!AbapGitUIServiceFactory.createAbapGitService().isFolderLogicSupportedWhileLink(this.cloneData.repositories)) {
321311
if (this.cloneData.hasDependencies()) {
322312
return this.pageApack;
323313
} else {
@@ -327,10 +317,10 @@ public IWizardPage getNextPage(IWizardPage page) {
327317
}
328318

329319
if (page.equals(this.pageFolderlogic) && !this.cloneData.hasDependencies()) {
330-
// If we don't have APACK dependencies, we can skip the APACK-related page
331-
return this.transportPage;
320+
// If we don't have APACK dependencies, we can skip the APACK-related page
321+
return this.transportPage;
332322
}
333-
return super.getNextPage(page);
323+
return super.getNextPage(page);
334324

335325
}
336326

@@ -355,6 +345,7 @@ public CloneData() {
355345
this.repoToModifiedOverwriteObjects = new HashSet<IRepositoryModifiedObjects>();
356346
this.repoToModifiedPackageWarningObjects = new HashSet<IRepositoryModifiedObjects>();
357347
}
348+
358349
public IRepositories repositories;
359350
public IExternalRepositoryInfo externalRepoInfo;
360351
public IAdtObjectReference packageRef;
@@ -384,38 +375,13 @@ private boolean fillModifiedObjectsinCloneData(IRepositoryService repoService, I
384375

385376
IRepositories repositories = repoService.getRepositories(new NullProgressMonitor());
386377

387-
try {
388-
getContainer().run(true, true, new IRunnableWithProgress() {
389-
390-
@Override
391-
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
392-
monitor.beginTask(Messages.AbapGitWizardPageBranchAndPackage_FetchingModifiedObjectsForPull, IProgressMonitor.UNKNOWN);
393-
RepositoryUtil.fetchAndExtractModifiedObjectsToPull(repository, repoService, AbapGitWizard.this.cloneData);
394-
}
395-
});
396-
} catch (InvocationTargetException | InterruptedException e) {
397-
e.printStackTrace();
398-
}
378+
RepositoryUtil.fetchAndExtractModifiedObjectsToPull(repository, repoService, this.cloneData);
399379

400380
if (this.cloneData.hasDependencies()) {
401381
for (IApackDependency apackDependency : this.cloneData.apackManifest.getDescriptor().getDependencies()) {
402382
IRepository dependencyRepository = repoService.getRepositoryByURL(repositories, apackDependency.getGitUrl());
403383
if (dependencyRepository != null) {
404-
405-
try {
406-
getContainer().run(true, true, new IRunnableWithProgress() {
407-
408-
@Override
409-
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
410-
monitor.beginTask(Messages.AbapGitWizardPageBranchAndPackage_FetchingModifiedObjectsForPull,
411-
IProgressMonitor.UNKNOWN);
412-
RepositoryUtil.fetchAndExtractModifiedObjectsToPull(dependencyRepository, repoService,
413-
AbapGitWizard.this.cloneData);
414-
}
415-
});
416-
} catch (InvocationTargetException | InterruptedException e) {
417-
e.printStackTrace();
418-
}
384+
RepositoryUtil.fetchAndExtractModifiedObjectsToPull(dependencyRepository, repoService, this.cloneData);
419385
}
420386
}
421387
}
@@ -441,16 +407,16 @@ private void openSelectivePullWizard() {
441407

442408
Display.getDefault().asyncExec(new Runnable() {
443409

444-
@Override
445-
public void run() {
446-
try {
410+
@Override
411+
public void run() {
412+
try {
447413
WizardDialog wizardDialog = new WizardDialog(Display.getDefault().getActiveShell(), selectivePullWizard);
448414
wizardDialog.open();
449415
} catch (ResourceException e) {
450416
ErrorHandlingService.openErrorDialog(Messages.AbapGitView_context_pull_error, e.getMessage(), getShell(), true);
451417
}
452-
}
453-
});
418+
}
419+
});
454420

455421
}
456422

0 commit comments

Comments
 (0)