This is an automated email from the ASF dual-hosted git repository.
lkishalmi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new 5894b30 [NETBEANS-4900] Added back the node for settings.gradle
5894b30 is described below
commit 5894b307484e3aa25b115eb1c45e506af4dc2dae
Author: Laszlo Kishalmi <[email protected]>
AuthorDate: Tue Oct 13 00:26:48 2020 -0700
[NETBEANS-4900] Added back the node for settings.gradle
---
.../modules/gradle/nodes/BuildScriptsNode.java | 4 +-
.../modules/gradle/nodes/GradleProjectNode.java | 1 +
.../netbeans/modules/gradle/spi/GradleFiles.java | 53 ++++++---
.../modules/gradle/nodes/BuildScriptsNodeTest.java | 132 +++++++++++++++++++++
4 files changed, 170 insertions(+), 20 deletions(-)
diff --git
a/extide/gradle/src/org/netbeans/modules/gradle/nodes/BuildScriptsNode.java
b/extide/gradle/src/org/netbeans/modules/gradle/nodes/BuildScriptsNode.java
index d251901..06151ee 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/nodes/BuildScriptsNode.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/nodes/BuildScriptsNode.java
@@ -69,7 +69,7 @@ public final class BuildScriptsNode extends
AnnotatedAbstractNode {
// The order in this array determines the order of the nodes under Build
Scripts
private final static Kind[] SCRIPTS = new Kind[] {
- BUILD_SRC, USER_PROPERTIES, ROOT_SCRIPT, ROOT_PROPERTIES,
BUILD_SCRIPT, PROJECT_PROPERTIES
+ BUILD_SRC, USER_PROPERTIES, SETTINGS_SCRIPT, ROOT_SCRIPT,
ROOT_PROPERTIES, BUILD_SCRIPT, PROJECT_PROPERTIES
};
@Override
@@ -133,6 +133,8 @@ public final class BuildScriptsNode extends
AnnotatedAbstractNode {
return createBuildFileNode(fo, isRoot ? null :
Bundle.LBL_ProjectSuffixt());
case USER_PROPERTIES:
return createBuildFileNode(fo, Bundle.LBL_UserSuffix());
+ case SETTINGS_SCRIPT:
+ return createBuildFileNode(fo, null);
case BUILD_SRC:
return SubProjectsNode.createSubProjectNode(fo);
default:
diff --git
a/extide/gradle/src/org/netbeans/modules/gradle/nodes/GradleProjectNode.java
b/extide/gradle/src/org/netbeans/modules/gradle/nodes/GradleProjectNode.java
index d3ce3ab..566f949 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/nodes/GradleProjectNode.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/nodes/GradleProjectNode.java
@@ -53,6 +53,7 @@ public class GradleProjectNode extends AbstractNode {
public GradleProjectNode(Lookup lookup, NbGradleProjectImpl proj) {
super(NodeFactorySupport.createCompositeChildren(proj, "Projects/" +
NbGradleProject.GRADLE_PROJECT_TYPE + "/Nodes"), lookup); //NOI18N
this.project = proj;
+ setName(proj.getProjectDirectory().getNameExt());
info = ProjectUtils.getInformation(project);
info.addPropertyChangeListener(new PropertyChangeListener() {
@Override
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/spi/GradleFiles.java
b/extide/gradle/src/org/netbeans/modules/gradle/spi/GradleFiles.java
index 1c1a2b5..73d1ee8 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/spi/GradleFiles.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/spi/GradleFiles.java
@@ -257,26 +257,41 @@ public final class GradleFiles implements Serializable {
* @return
*/
public File getFile(Kind kind) {
- switch (kind) {
- case BUILD_SCRIPT:
- return buildScript != null ? buildScript : new
File(projectDir, BUILD_FILE_NAME);
- case ROOT_SCRIPT:
- return parentScript != null ? parentScript : new File(rootDir,
BUILD_FILE_NAME);
- case SETTINGS_SCRIPT:
- return settingsScript != null ? settingsScript : new
File(rootDir, SETTINGS_FILE_NAME);
-
- case PROJECT_PROPERTIES:
- return new File(projectDir, GRADLE_PROPERTIES_NAME);
- case ROOT_PROPERTIES:
- return new File(rootDir, GRADLE_PROPERTIES_NAME);
- case USER_PROPERTIES: {
- File guh = GradleSettings.getDefault().getGradleUserHome();
- return new File(guh, GRADLE_PROPERTIES_NAME);
+ if (isBuildSrcProject()) {
+ switch (kind) {
+ case BUILD_SCRIPT:
+ return buildScript != null ? buildScript : new
File(projectDir, BUILD_FILE_NAME);
+ case PROJECT_PROPERTIES:
+ return new File(projectDir, GRADLE_PROPERTIES_NAME);
+ case USER_PROPERTIES: {
+ File guh = GradleSettings.getDefault().getGradleUserHome();
+ return new File(guh, GRADLE_PROPERTIES_NAME);
+ }
+ default:
+ return null;
+ }
+ } else {
+ switch (kind) {
+ case BUILD_SCRIPT:
+ return buildScript != null ? buildScript : new
File(projectDir, BUILD_FILE_NAME);
+ case ROOT_SCRIPT:
+ return parentScript != null ? parentScript : new
File(rootDir, BUILD_FILE_NAME);
+ case SETTINGS_SCRIPT:
+ return settingsScript != null ? settingsScript : new
File(rootDir, SETTINGS_FILE_NAME);
+
+ case PROJECT_PROPERTIES:
+ return new File(projectDir, GRADLE_PROPERTIES_NAME);
+ case ROOT_PROPERTIES:
+ return new File(rootDir, GRADLE_PROPERTIES_NAME);
+ case USER_PROPERTIES: {
+ File guh = GradleSettings.getDefault().getGradleUserHome();
+ return new File(guh, GRADLE_PROPERTIES_NAME);
+ }
+ case BUILD_SRC:
+ return new File(rootDir, "buildSrc"); //NOI18N
+ default:
+ return null;
}
- case BUILD_SRC:
- return isBuildSrcProject() ? null : new File(rootDir,
"buildSrc"); //NOI18N
- default:
- return null;
}
}
diff --git
a/extide/gradle/test/unit/src/org/netbeans/modules/gradle/nodes/BuildScriptsNodeTest.java
b/extide/gradle/test/unit/src/org/netbeans/modules/gradle/nodes/BuildScriptsNodeTest.java
new file mode 100644
index 0000000..82332a7
--- /dev/null
+++
b/extide/gradle/test/unit/src/org/netbeans/modules/gradle/nodes/BuildScriptsNodeTest.java
@@ -0,0 +1,132 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.netbeans.modules.gradle.nodes;
+
+import java.io.IOException;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import static org.junit.Assert.*;
+import org.netbeans.api.project.Project;
+import org.netbeans.api.project.ProjectManager;
+import org.netbeans.modules.gradle.AbstractGradleProjectTestCase;
+import org.netbeans.modules.gradle.NbGradleProjectImpl;
+import org.openide.filesystems.FileObject;
+import org.openide.filesystems.LocalFileSystem;
+import org.openide.nodes.Node;
+
+/**
+ *
+ * @author lkishalmi
+ */
+public class BuildScriptsNodeTest extends AbstractGradleProjectTestCase {
+
+ private FileObject root;
+
+ public BuildScriptsNodeTest(String name) {
+ super(name);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ LocalFileSystem fs = new LocalFileSystem();
+ fs.setRootDirectory(getWorkDir());
+ root = fs.getRoot();
+ }
+
+ @Test
+ public void testGradleOnRoot() throws Exception {
+ FileObject a = createGradleProject("projectA",
+ "apply plugin: 'java'\n", "");
+ Project prjA = ProjectManager.getDefault().findProject(a);
+ BuildScriptsNode node = new
BuildScriptsNode((NbGradleProjectImpl)prjA);
+ Node build = childNodeFor(node, a.getFileObject("build.gradle"));
+ assertNotNull(build);
+ assertEquals("build.gradle", build.getDisplayName());
+ Node settings = childNodeFor(node, a.getFileObject("settings.gradle"));
+ assertNotNull(settings);
+ assertEquals("settings.gradle", settings.getDisplayName());
+ assertNull(node.getChildren().findChild("buildSrc"));
+ }
+
+ @Test
+ public void testGradleWithBuildSrc() throws Exception {
+ FileObject a = createGradleProject("projectA",
+ "apply plugin: 'java'\n", "");
+ FileObject b = a.createFolder("buildSrc");
+ Project prjA = ProjectManager.getDefault().findProject(a);
+ BuildScriptsNode node = new
BuildScriptsNode((NbGradleProjectImpl)prjA);
+ Node build = childNodeFor(node, a.getFileObject("build.gradle"));
+ assertNotNull(build);
+ assertEquals("build.gradle", build.getDisplayName());
+ Node settings = childNodeFor(node, a.getFileObject("settings.gradle"));
+ assertNotNull(settings);
+ assertEquals("settings.gradle", settings.getDisplayName());
+ Node buildSrc = childNodeFor(node, b);
+ assertNotNull(buildSrc);
+ }
+
+ @Test
+ public void testGradleOnBuildSrc() throws Exception {
+ FileObject a = createGradleProject("projectA",
+ "apply plugin: 'java'\n", "");
+ FileObject b = a.createFolder("buildSrc");
+ Project prjA = ProjectManager.getDefault().findProject(a);
+ Project prjB = ProjectManager.getDefault().findProject(b);
+ BuildScriptsNode node = new
BuildScriptsNode((NbGradleProjectImpl)prjB);
+ assertNull(childNodeFor(node, b));
+ assertNull(childNodeFor(node, a.getFileObject("build.gradle")));
+ assertNull(childNodeFor(node, a.getFileObject("settings.gradle")));
+ }
+
+ @Test
+ public void testGradleWithSubProject() throws Exception {
+ FileObject a = createGradleProject("projectA",
+ "", "include 'projectB'");
+ FileObject gprops = a.createData("gradle.properties");
+ FileObject b = createGradleProject("projectA/projectB",
+ "apply plugin: 'java'\n", null);
+ Project prjA = ProjectManager.getDefault().findProject(a);
+ Project prjB = ProjectManager.getDefault().findProject(b);
+ BuildScriptsNode node = new
BuildScriptsNode((NbGradleProjectImpl)prjB);
+ Node build = node.getChildren().findChild("build");
+ assertNotNull(build);
+ assertEquals("build.gradle [root]", build.getDisplayName());
+ Node settings = node.getChildren().findChild("settings");
+ assertNotNull(settings);
+ assertEquals("settings.gradle", settings.getDisplayName());
+ Node gradle = childNodeFor(node, gprops);
+ assertNotNull(gradle);
+ assertEquals("gradle.properties [root]", gradle.getDisplayName());
+
+ }
+
+ private static Node childNodeFor(Node node, FileObject fo) {
+ for (Node child : node.getChildren().getNodes(true)) {
+ FileObject cfo = child.getLookup().lookup(FileObject.class);
+ if (fo.equals(cfo)) {
+ return child;
+ }
+ }
+ return null;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists