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 f0d2711  [NETBEANS-6065] Make Gradle Project test close connections to 
Gradle Daemon
f0d2711 is described below

commit f0d2711a279075025a3021c129ecede8409ae022
Author: Laszlo Kishalmi <laszlo.kisha...@gmail.com>
AuthorDate: Sat Sep 25 09:58:14 2021 -0700

    [NETBEANS-6065] Make Gradle Project test close connections to Gradle Daemon
---
 .../modules/gradle/GradleProjectConnection.java    |  6 ++-
 .../modules/gradle/NbGradleProjectImplTest.java    | 47 ++++++++++++++++------
 2 files changed, 40 insertions(+), 13 deletions(-)

diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/GradleProjectConnection.java 
b/extide/gradle/src/org/netbeans/modules/gradle/GradleProjectConnection.java
index 6a97395..768490c 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/GradleProjectConnection.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/GradleProjectConnection.java
@@ -46,7 +46,7 @@ import org.openide.util.WeakListeners;
  * @author lkishalmi
  */
 @ProjectServiceProvider(service = ProjectConnection.class, projectType = 
NbGradleProject.GRADLE_PROJECT_TYPE)
-public class GradleProjectConnection implements ProjectConnection {
+public final class GradleProjectConnection implements ProjectConnection {
 
     final Project project;
     ProjectConnection conn;
@@ -111,6 +111,10 @@ public class GradleProjectConnection implements 
ProjectConnection {
         compatConn = null;
     }
 
+    synchronized boolean hasConnection() {
+        return conn != null || compatConn != null;
+    }
+    
     private synchronized ProjectConnection getConnection(boolean compatible) {
         if (conn == null) {
             File projectDir = FileUtil.toFile(project.getProjectDirectory());
diff --git 
a/extide/gradle/test/unit/src/org/netbeans/modules/gradle/NbGradleProjectImplTest.java
 
b/extide/gradle/test/unit/src/org/netbeans/modules/gradle/NbGradleProjectImplTest.java
index ea679ba..2ee0041 100644
--- 
a/extide/gradle/test/unit/src/org/netbeans/modules/gradle/NbGradleProjectImplTest.java
+++ 
b/extide/gradle/test/unit/src/org/netbeans/modules/gradle/NbGradleProjectImplTest.java
@@ -27,6 +27,9 @@ import java.util.Random;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Semaphore;
+import org.gradle.tooling.ProjectConnection;
+import org.junit.After;
+import org.junit.Before;
 import org.netbeans.api.project.FileOwnerQuery;
 import org.netbeans.api.project.Project;
 import org.netbeans.api.project.ProjectManager;
@@ -49,6 +52,26 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
     }
     
     private FileObject projectDir;
+    private Project prj;
+    
+    @Before
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        prj = createProject();
+    }
+    
+    @After
+    @Override
+    public void tearDown() throws Exception {
+        ProjectConnection pconn = 
prj.getLookup().lookup(ProjectConnection.class);
+        if (pconn instanceof GradleProjectConnection) {
+            GradleProjectConnection gpconn = (GradleProjectConnection) pconn;
+            gpconn.close();
+        }
+        prj = null;
+        super.tearDown();
+    }
     
     private Project createProject() throws Exception {
         int rnd = new Random().nextInt(1000000);
@@ -58,12 +81,19 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
         return ProjectManager.getDefault().findProject(a);
     }
     
+    private void assertHasNoConnection(Project p) throws Exception {
+        ProjectConnection pconn = 
p.getLookup().lookup(ProjectConnection.class);
+        if (pconn instanceof GradleProjectConnection) {
+            GradleProjectConnection gpconn = (GradleProjectConnection) pconn;
+            assertFalse(gpconn.hasConnection());
+        }
+    }
+    
     /**
      * Checks that untrusted unopened project will present itself as a 
fallback.
      * @throws Exception 
      */
     public void testUntrustedProjectFallback() throws Exception {
-        Project prj = createProject();
         NbGradleProject ngp = NbGradleProject.get(prj);
         
         
assertTrue(ngp.getQuality().worseThan(NbGradleProject.Quality.EVALUATED));
@@ -74,9 +104,9 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
      * @throws Exception 
      */
     public void testInitialLoadDoesNotFireChange() throws Exception {
-        Project prj = createProject();
         NbGradleProject ngp = NbGradleProject.get(prj);
         
assertTrue(ngp.getQuality().worseThan(NbGradleProject.Quality.EVALUATED));
+        assertHasNoConnection(prj);
     }
     
     /**
@@ -85,7 +115,6 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
      * @throws Exception 
      */
     public void testUntrustedProjectCannotGoUp() throws Exception {
-        Project prj = createProject();
         
         NbGradleProjectImpl prjImpl = 
prj.getLookup().lookup(NbGradleProjectImpl.class);
         
assertTrue(prjImpl.getGradleProject().getQuality().worseThan(NbGradleProject.Quality.EVALUATED));
@@ -93,6 +122,7 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
         prjImpl.setAimedQuality(NbGradleProject.Quality.FULL);
         // ... it loaded, but did not escalate the quality bcs not trusted
         
assertTrue(prjImpl.getGradleProject().getQuality().worseThan(NbGradleProject.Quality.EVALUATED));
+        assertHasNoConnection(prj);
     }
     
     /**
@@ -100,7 +130,6 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
      * @throws Exception 
      */
     public void testTrustedProjectLoadsToEvaluated() throws Exception {
-        Project prj = createProject();
         
         NbGradleProjectImpl prjImpl = 
prj.getLookup().lookup(NbGradleProjectImpl.class);
         
assertTrue(prjImpl.getGradleProject().getQuality().worseThan(NbGradleProject.Quality.EVALUATED));
@@ -138,7 +167,6 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
      * event.
      */
     public void testInitialLoadReloadNotFired() throws Exception {
-        Project prj = createProject();
         NbGradleProject ngp = NbGradleProject.get(prj);
         
         ngp.addPropertyChangeListener(projL);
@@ -152,7 +180,6 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
      * that the ProjectInfo property change is fired.
      */
     public void testProjectQualityUpgradeFiresChange() throws Exception {
-        Project prj = createProject();
         NbGradleProject ngp = NbGradleProject.get(prj);
         ProjectTrust.getDefault().trustProject(prj);
         // initializes the project
@@ -172,7 +199,6 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
      * Checks that ProjectInfo events are processed before completion of the 
load future
      */
     public void testEventsProcessedBeforeCompletion() throws Exception {
-        Project prj = createProject();
         NbGradleProject ngp = NbGradleProject.get(prj);
         ProjectTrust.getDefault().trustProject(prj);
         // initializes the project
@@ -200,7 +226,6 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
      * as Gradle script execution is permitted (now).
      */
     public void testIncreaseAimedQualityChangesProject() throws Exception {
-        Project prj = createProject();
         NbGradleProject ngp = NbGradleProject.get(prj);
         ProjectTrust.getDefault().trustProject(prj);
         // initializes the project
@@ -220,18 +245,18 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
      * the evaluated state does not exist.
      */
     public void testEvaluateTrustedDoesNotExecuteScript() throws Exception {
-        Project prj = createProject();
         NbGradleProject ngp = NbGradleProject.get(prj);
         ProjectTrust.getDefault().trustProject(prj);
         // initializes the project
         
assertTrue(ngp.getQuality().worseThan(NbGradleProject.Quality.EVALUATED));
-        
+        assertHasNoConnection(prj);
         NbGradleProjectImpl prjImpl = 
prj.getLookup().lookup(NbGradleProjectImpl.class);
         GradleProject curProject = prjImpl.getGradleProject();
         prjImpl.setAimedQuality(Quality.EVALUATED);
         GradleProject newProject = prjImpl.getGradleProject();
         
assertTrue(newProject.getQuality().worseThan(NbGradleProject.Quality.EVALUATED));
         assertSame(newProject, curProject);
+        assertHasNoConnection(prj);
     }
     
     /**
@@ -241,7 +266,6 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
      * was full before).
      */
     public void testAllowedProjectLoadsImmediately() throws Exception {
-        Project prj = createProject();
         NbGradleProject ngp = NbGradleProject.get(prj);
         ProjectTrust.getDefault().trustProject(prj);
 
@@ -296,7 +320,6 @@ public class NbGradleProjectImplTest extends 
AbstractGradleProjectTestCase {
     }
     
     private void checkProjectDoesNotChange(Quality aimed) throws Exception {
-        Project prj = createProject();
         NbGradleProject ngp = NbGradleProject.get(prj);
         ProjectTrust.getDefault().trustProject(prj);
         NbGradleProjectImpl prjImpl = 
prj.getLookup().lookup(NbGradleProjectImpl.class);

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to