Skip to content

Commit 47e1ffc

Browse files
authored
Show warning when m2e _do not update remote-dependencies_ setting is on (#1044)
1 parent 609bb34 commit 47e1ffc

File tree

9 files changed

+157
-207
lines changed

9 files changed

+157
-207
lines changed

plugins/com.google.cloud.tools.eclipse.appengine.newproject.maven/src/com/google/cloud/tools/eclipse/appengine/newproject/maven/CreateMavenBasedAppEngineStandardProject.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.google.cloud.tools.eclipse.appengine.libraries.model.Library;
2121
import com.google.cloud.tools.eclipse.util.MavenUtils;
2222
import java.lang.reflect.InvocationTargetException;
23+
import java.util.Collection;
2324
import java.util.HashSet;
2425
import java.util.List;
2526
import java.util.Properties;
@@ -132,10 +133,10 @@ void setArchetype(Archetype archetype) {
132133
this.archetype = archetype;
133134
}
134135

135-
void setAppEngineLibraryIds(List<Library> libraries) {
136+
void setAppEngineLibraryIds(Collection<Library> libraries) {
136137
appEngineLibraryIds = new HashSet<String>();
137-
for (int i = 0; i < libraries.size(); i++) {
138-
appEngineLibraryIds.add(libraries.get(i).getId());
138+
for (Library library : libraries) {
139+
appEngineLibraryIds.add(library.getId());
139140
}
140141
}
141142

plugins/com.google.cloud.tools.eclipse.appengine.newproject.maven/src/com/google/cloud/tools/eclipse/appengine/newproject/maven/MavenAppEngineStandardWizardPage.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,23 @@
2525
import com.google.cloud.tools.io.FilePermissions;
2626
import com.google.common.annotations.VisibleForTesting;
2727
import com.google.common.base.CharMatcher;
28-
import java.text.MessageFormat;
29-
import java.util.List;
3028
import java.io.IOException;
3129
import java.nio.file.FileAlreadyExistsException;
3230
import java.nio.file.Paths;
31+
import java.text.MessageFormat;
32+
import java.util.Collection;
33+
import org.eclipse.aether.repository.RepositoryPolicy;
3334
import org.eclipse.core.resources.ResourcesPlugin;
3435
import org.eclipse.core.runtime.IPath;
3536
import org.eclipse.core.runtime.IStatus;
3637
import org.eclipse.core.runtime.Path;
3738
import org.eclipse.jface.dialogs.Dialog;
3839
import org.eclipse.jface.layout.GridDataFactory;
3940
import org.eclipse.jface.layout.GridLayoutFactory;
41+
import org.eclipse.jface.viewers.ISelectionChangedListener;
42+
import org.eclipse.jface.viewers.SelectionChangedEvent;
4043
import org.eclipse.jface.wizard.WizardPage;
44+
import org.eclipse.m2e.core.MavenPlugin;
4145
import org.eclipse.swt.SWT;
4246
import org.eclipse.swt.events.ModifyEvent;
4347
import org.eclipse.swt.events.ModifyListener;
@@ -111,6 +115,12 @@ public void createControl(Composite parent) {
111115
createMavenCoordinatesArea(container);
112116
createAppEngineProjectDetailsArea(container);
113117
appEngineLibrariesSelectorGroup = new AppEngineLibrariesSelectorGroup(container);
118+
appEngineLibrariesSelectorGroup.addSelectionChangedListener(new ISelectionChangedListener() {
119+
@Override
120+
public void selectionChanged(SelectionChangedEvent event) {
121+
validatePage();
122+
}
123+
});
114124

115125
Dialog.applyDialogFont(container);
116126
}
@@ -268,10 +278,19 @@ private boolean validatePage() {
268278
if (!validateAppEngineProjectDetails()) {
269279
return false;
270280
}
281+
checkMavenUpdateSettings();
271282

272283
return true;
273284
}
274285

286+
private void checkMavenUpdateSettings() {
287+
String globalUpdatePolicy = MavenPlugin.getMavenConfiguration().getGlobalUpdatePolicy();
288+
if (!appEngineLibrariesSelectorGroup.getSelectedLibraries().isEmpty()
289+
&& RepositoryPolicy.UPDATE_POLICY_NEVER.equals(globalUpdatePolicy)) {
290+
setMessage(Messages.getString("M2E_GLOBAL_UPDATES_PREVENT_CHECKS"), WARNING);
291+
}
292+
}
293+
275294
@VisibleForTesting
276295
static boolean validateLocation(String location, WizardPage page) {
277296
if (location.isEmpty()) {
@@ -294,7 +313,7 @@ static boolean validateLocation(String location, WizardPage page) {
294313
}
295314
}
296315

297-
public List<Library> getSelectedLibraries() {
316+
public Collection<Library> getSelectedLibraries() {
298317
return appEngineLibrariesSelectorGroup.getSelectedLibraries();
299318
}
300319

plugins/com.google.cloud.tools.eclipse.appengine.newproject.maven/src/com/google/cloud/tools/eclipse/appengine/newproject/maven/messages.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,4 @@ MAVEN_PROJECT_COORDINATES=Maven project coordinates
2828
GROUP_ID=Group ID:
2929
ARTIFACT_ID=Artifact ID:
3030
ARTIFACT_VERSION=Version:
31+
M2E_GLOBAL_UPDATES_PREVENT_CHECKS=Maven settings prevent checking for later versions of selected libraries

plugins/com.google.cloud.tools.eclipse.appengine.newproject.test/src/com/google/cloud/tools/eclipse/appengine/newproject/AppEngineStandardProjectConfigTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.net.URI;
2424
import java.net.URISyntaxException;
2525
import java.util.Collections;
26-
2726
import org.eclipse.core.resources.IProject;
2827
import org.eclipse.core.resources.IWorkspace;
2928
import org.eclipse.core.resources.ResourcesPlugin;
@@ -61,7 +60,7 @@ public void testEclipseProjectLocationUri() throws URISyntaxException {
6160

6261
@Test
6362
public void testAppEngineLibraries() {
64-
config.setAppEngineLibraries(Collections.singletonList(new Library("app-engine-library")));
63+
config.setAppEngineLibraries(Collections.singleton(new Library("app-engine-library")));
6564
assertThat(config.getAppEngineLibraries().size(), is(1));
6665
assertThat(config.getAppEngineLibraries().iterator().next().getId(), is("app-engine-library"));
6766
}

plugins/com.google.cloud.tools.eclipse.appengine.newproject/src/com/google/cloud/tools/eclipse/appengine/newproject/AppEngineStandardProjectConfig.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@
1919
import com.google.cloud.tools.eclipse.appengine.libraries.model.Library;
2020
import java.io.File;
2121
import java.net.URI;
22+
import java.util.ArrayList;
23+
import java.util.Collection;
2224
import java.util.Collections;
23-
import java.util.LinkedList;
2425
import java.util.List;
2526
import org.eclipse.core.resources.IProject;
2627

@@ -34,7 +35,6 @@ class AppEngineStandardProjectConfig {
3435
private IProject project;
3536
private List<Library> appEngineLibraries = Collections.emptyList();
3637

37-
3838
public File getCloudSdkLocation() {
3939
return cloudSdkLocation;
4040
}
@@ -74,8 +74,8 @@ public List<Library> getAppEngineLibraries() {
7474
return appEngineLibraries;
7575
}
7676

77-
public void setAppEngineLibraries(List<Library> libraries) {
78-
this.appEngineLibraries = new LinkedList<>(libraries);
77+
public void setAppEngineLibraries(Collection<Library> libraries) {
78+
this.appEngineLibraries = new ArrayList<>(libraries);
7979
}
8080

8181
}

plugins/com.google.cloud.tools.eclipse.appengine.newproject/src/com/google/cloud/tools/eclipse/appengine/newproject/AppEngineStandardWizardPage.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,13 @@
1616

1717
package com.google.cloud.tools.eclipse.appengine.newproject;
1818

19+
import com.google.cloud.tools.eclipse.appengine.libraries.model.Library;
20+
import com.google.cloud.tools.eclipse.appengine.ui.AppEngineImages;
21+
import com.google.cloud.tools.eclipse.appengine.ui.AppEngineLibrariesSelectorGroup;
22+
import com.google.cloud.tools.eclipse.usagetracker.AnalyticsEvents;
23+
import com.google.cloud.tools.eclipse.usagetracker.AnalyticsPingManager;
1924
import java.io.File;
20-
import java.util.List;
21-
25+
import java.util.Collection;
2226
import org.eclipse.core.runtime.IStatus;
2327
import org.eclipse.jface.dialogs.Dialog;
2428
import org.eclipse.swt.SWT;
@@ -29,11 +33,6 @@
2933
import org.eclipse.swt.widgets.Label;
3034
import org.eclipse.swt.widgets.Text;
3135
import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
32-
import com.google.cloud.tools.eclipse.appengine.libraries.model.Library;
33-
import com.google.cloud.tools.eclipse.appengine.ui.AppEngineLibrariesSelectorGroup;
34-
import com.google.cloud.tools.eclipse.appengine.ui.AppEngineImages;
35-
import com.google.cloud.tools.eclipse.usagetracker.AnalyticsEvents;
36-
import com.google.cloud.tools.eclipse.usagetracker.AnalyticsPingManager;
3736

3837
/**
3938
* UI to collect all information necessary to create a new App Engine Standard Java Eclipse project.
@@ -119,7 +118,7 @@ public String getPackageName() {
119118
return this.javaPackageField.getText();
120119
}
121120

122-
public List<Library> getSelectedLibraries() {
121+
public Collection<Library> getSelectedLibraries() {
123122
return appEngineLibrariesSelectorGroup.getSelectedLibraries();
124123
}
125124

plugins/com.google.cloud.tools.eclipse.appengine.ui.test/src/com/google/cloud/tools/eclipse/appengine/ui/AppEngineLibrariesSelectorGroupTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import com.google.cloud.tools.eclipse.appengine.libraries.model.Library;
2626
import com.google.cloud.tools.eclipse.test.util.ui.ShellTestResource;
27+
import java.util.ArrayList;
2728
import java.util.Collections;
2829
import java.util.Comparator;
2930
import java.util.List;
@@ -251,7 +252,7 @@ private void syncExec(Runnable runnable) {
251252
}
252253

253254
private List<Library> getSelectedLibrariesSorted() {
254-
List<Library> selectedLibraries = librariesSelector.getSelectedLibraries();
255+
List<Library> selectedLibraries = new ArrayList<>(librariesSelector.getSelectedLibraries());
255256
Collections.sort(selectedLibraries, new Comparator<Library>() {
256257

257258
@Override

plugins/com.google.cloud.tools.eclipse.appengine.ui/META-INF/MANIFEST.MF

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Bundle-Localization: plugin
88
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
99
Export-Package: com.google.cloud.tools.eclipse.appengine.ui
1010
Import-Package: com.google.cloud.tools.eclipse.appengine.libraries.model,
11+
org.eclipse.core.runtime;version="3.5.0",
1112
com.google.common.annotations;version="20.0.0",
1213
com.google.common.base;version="20.0.0",
1314
org.eclipse.core.databinding,
@@ -20,6 +21,7 @@ Import-Package: com.google.cloud.tools.eclipse.appengine.libraries.model,
2021
org.eclipse.jface.dialogs,
2122
org.eclipse.jface.layout,
2223
org.eclipse.jface.resource,
24+
org.eclipse.jface.viewers,
2325
org.eclipse.jface.wizard,
2426
org.eclipse.osgi.util;version="1.1.0",
2527
org.eclipse.swt,

0 commit comments

Comments
 (0)