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