[jbosstools-commits] JBoss Tools SVN: r35309 - in trunk/as: tests/org.jboss.ide.eclipse.as.archives.integration.test/META-INF and 1 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Tue Oct 4 01:27:12 EDT 2011


Author: rob.stryker at jboss.com
Date: 2011-10-04 01:27:12 -0400 (Tue, 04 Oct 2011)
New Revision: 35309

Added:
   trunk/as/tests/org.jboss.ide.eclipse.as.archives.integration.test/src/org/jboss/ide/eclipse/as/archives/integration/test/JSTEarWithNestedWebProjectIncrementalPublish.java
Modified:
   trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/AltMethodZippedJSTPublisher.java
   trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/LocalZippedPublisherUtil.java
   trunk/as/tests/org.jboss.ide.eclipse.as.archives.integration.test/META-INF/MANIFEST.MF
   trunk/as/tests/org.jboss.ide.eclipse.as.archives.integration.test/src/org/jboss/ide/eclipse/as/archives/integration/test/ASArchivesIntegrationTestSuite.java
Log:
JBIDE-9824 with test case

Modified: trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/AltMethodZippedJSTPublisher.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/AltMethodZippedJSTPublisher.java	2011-10-04 01:21:53 UTC (rev 35308)
+++ trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/AltMethodZippedJSTPublisher.java	2011-10-04 05:27:12 UTC (rev 35309)
@@ -76,6 +76,8 @@
 			
 			monitor.setTaskName("Publishing to remote server " + server.getName()); //$NON-NLS-1$
 			
+			
+			
 			// set up needed vars
 			IDeployableServer server2 = ServerConverter.getDeployableServer(server);
 			String remoteTempDeployRoot = getDeployRoot(module, ServerConverter.getDeployableServer(server));
@@ -88,7 +90,9 @@
 			
 			if(publishType == IJBossServerPublisher.REMOVE_PUBLISH) {
 				result = removeRemoteDeployment(sourcePath, destination.removeLastSegments(1), name, monitor);
-			} else if (publishType != IJBossServerPublisher.NO_PUBLISH) {
+			} else if( publishType != IJBossServerPublisher.NO_PUBLISH 
+					|| new LocalZippedPublisherUtil().anyChangesRecurse(server, module)){
+
 				/* 
 				 * remove prior exploded deployment (prior deployfailed marker, deployed folder etc.)
 				 * and redeploy

Modified: trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/LocalZippedPublisherUtil.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/LocalZippedPublisherUtil.java	2011-10-04 01:21:53 UTC (rev 35308)
+++ trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/LocalZippedPublisherUtil.java	2011-10-04 05:27:12 UTC (rev 35309)
@@ -131,7 +131,32 @@
 	protected List<IModule[]> getRemovedModules(IServer s) {
 		return getBehaviour(s).getRemovedModules();
 	}
-	
+
+	public boolean anyChangesRecurse(IServer server, IModule[] module) {
+		// Since for zipped, incremental and full are identical, just return a result other than 'no publish'
+		if( !getBehaviour(server).hasBeenPublished(module)) 
+			return true;
+		
+		if( isRemoved(server, module))
+			return true;
+		
+		int modulePublishState = server.getModulePublishState(module);
+		if( modulePublishState != IServer.PUBLISH_STATE_NONE)
+			return true;
+		
+		IModuleResourceDelta[] deltas = ((Server)server).getPublishedResourceDelta(module);
+		if( deltas.length > 0)
+			return true;
+		
+		IModule[] children = server.getChildModules(module, new NullProgressMonitor());
+		for( int i = 0; i < children.length; i++ ) {
+			IModule[] tmp = combine(module, children[i]);
+			if(anyChangesRecurse(server, tmp))
+				return true; 
+		}
+		return false;
+	}
+
 	protected IStatus[] handleChildrenDeltas(IServer server, String deployRoot, IModule[] module, IModule[] children) {
 		// For each child:
 		ArrayList<IStatus> results = new ArrayList<IStatus>(); 
@@ -327,7 +352,7 @@
 		return root;
 	}
 
-	private IModule[] combine(IModule[] module, IModule newMod) {
+	public static IModule[] combine(IModule[] module, IModule newMod) {
 		IModule[] retval = new IModule[module.length + 1];
 		for( int i = 0; i < module.length; i++ )
 			retval[i]=module[i];

Modified: trunk/as/tests/org.jboss.ide.eclipse.as.archives.integration.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/tests/org.jboss.ide.eclipse.as.archives.integration.test/META-INF/MANIFEST.MF	2011-10-04 01:21:53 UTC (rev 35308)
+++ trunk/as/tests/org.jboss.ide.eclipse.as.archives.integration.test/META-INF/MANIFEST.MF	2011-10-04 05:27:12 UTC (rev 35309)
@@ -21,6 +21,9 @@
  org.eclipse.jface;bundle-version="3.4.2",
  org.jboss.tools.tests;bundle-version="2.0.0",
  org.junit;bundle-version="3.8.2",
- org.jboss.ide.eclipse.as.test;bundle-version="2.2.0"
+ org.jboss.ide.eclipse.as.test;bundle-version="2.2.0",
+ org.eclipse.wst.common.frameworks;bundle-version="1.2.100",
+ org.eclipse.jst.common.project.facet.core;bundle-version="1.4.200",
+ org.eclipse.wst.common.project.facet.core;bundle-version="1.4.200"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.jboss.ide.eclipse.as.archives.integration.test

Modified: trunk/as/tests/org.jboss.ide.eclipse.as.archives.integration.test/src/org/jboss/ide/eclipse/as/archives/integration/test/ASArchivesIntegrationTestSuite.java
===================================================================
--- trunk/as/tests/org.jboss.ide.eclipse.as.archives.integration.test/src/org/jboss/ide/eclipse/as/archives/integration/test/ASArchivesIntegrationTestSuite.java	2011-10-04 01:21:53 UTC (rev 35308)
+++ trunk/as/tests/org.jboss.ide.eclipse.as.archives.integration.test/src/org/jboss/ide/eclipse/as/archives/integration/test/ASArchivesIntegrationTestSuite.java	2011-10-04 05:27:12 UTC (rev 35309)
@@ -30,6 +30,7 @@
         TestSuite suite = new TestSuite("AS Archives Integration Test Suite");
         suite.addTestSuite(BuildDeployTest.class);
         suite.addTestSuite(SingleFileZippedDeploymentIntegrationTest.class);
+        suite.addTestSuite(JSTEarWithNestedWebProjectIncrementalPublish.class);
         return suite; 
    }
 

Added: trunk/as/tests/org.jboss.ide.eclipse.as.archives.integration.test/src/org/jboss/ide/eclipse/as/archives/integration/test/JSTEarWithNestedWebProjectIncrementalPublish.java
===================================================================
--- trunk/as/tests/org.jboss.ide.eclipse.as.archives.integration.test/src/org/jboss/ide/eclipse/as/archives/integration/test/JSTEarWithNestedWebProjectIncrementalPublish.java	                        (rev 0)
+++ trunk/as/tests/org.jboss.ide.eclipse.as.archives.integration.test/src/org/jboss/ide/eclipse/as/archives/integration/test/JSTEarWithNestedWebProjectIncrementalPublish.java	2011-10-04 05:27:12 UTC (rev 35309)
@@ -0,0 +1,87 @@
+package org.jboss.ide.eclipse.as.archives.integration.test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerWorkingCopy;
+import org.eclipse.wst.server.core.ServerUtil;
+import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
+import org.jboss.ide.eclipse.as.core.server.internal.ServerAttributeHelper;
+import org.jboss.ide.eclipse.as.test.ASTest;
+import org.jboss.ide.eclipse.as.test.publishing.v2.MockPublishMethod;
+import org.jboss.ide.eclipse.as.test.util.IOUtil;
+import org.jboss.ide.eclipse.as.test.util.ServerRuntimeUtils;
+import org.jboss.ide.eclipse.as.test.util.wtp.JavaEEFacetConstants;
+import org.jboss.ide.eclipse.as.test.util.wtp.OperationTestCase;
+import org.jboss.ide.eclipse.as.test.util.wtp.ProjectCreationUtil;
+import org.jboss.ide.eclipse.as.test.util.wtp.ProjectUtility;
+
+public class JSTEarWithNestedWebProjectIncrementalPublish extends
+		TestCase {
+	public void setUp() throws Exception {
+	}
+	public void tearDown() throws Exception {
+		ServerRuntimeUtils.deleteAllServers();
+		ServerRuntimeUtils.deleteAllRuntimes();
+		ProjectUtility.deleteAllProjects();
+		ASTest.clearStateLocation();
+	}
+
+	private IServer server;
+	private IProject earProj, webProj;
+	public void testZippedPublish() throws CoreException, IOException, Exception {
+		server = ServerRuntimeUtils.createMockDeployOnlyServer();
+		server = ServerRuntimeUtils.useMockPublishMethod(server);
+		setZipFlag();
+		MockPublishMethod.reset();
+		
+		
+		IDataModel dm = ProjectCreationUtil.getEARDataModel("EAR", "EarContent",  null, null, JavaEEFacetConstants.EAR_5, false);
+		OperationTestCase.runAndVerify(dm);
+		earProj = ResourcesPlugin.getWorkspace().getRoot().getProject("EAR");
+		assertTrue(earProj.exists());
+		
+		IDataModel dm2 = ProjectCreationUtil.getWebDataModel("Web", "EAR", null, null, null, JavaEEFacetConstants.WEB_24, false);
+		OperationTestCase.runAndVerify(dm2);
+		webProj = ResourcesPlugin.getWorkspace().getRoot().getProject("Web");
+		assertTrue(webProj.exists());
+		
+		IModule mod = ServerUtil.getModule(earProj);
+		server = ServerRuntimeUtils.addModule(server, mod);
+		ServerRuntimeUtils.publish(server);
+
+		ArrayList<IPath> changed = MockPublishMethod.changed;
+		assertTrue(changed.size() == 1);
+		MockPublishMethod.reset();
+		
+		IFile textFile = webProj.getFile(new Path("WebContent").append("out.html"));
+		IOUtil.setContents(textFile, 0);
+		
+		ServerRuntimeUtils.publish(server);
+		changed = MockPublishMethod.changed;
+		assertTrue(changed.size() == 1);
+		MockPublishMethod.reset();
+	}
+	
+	private void setZipFlag() throws IOException, CoreException {
+		IServerWorkingCopy wc = server.createWorkingCopy();
+		ServerAttributeHelper helper = new ServerAttributeHelper(server, wc);
+		helper.setAttribute(IDeployableServer.ZIP_DEPLOYMENTS_PREF, true);
+		server = wc.save(true, new NullProgressMonitor());
+	}
+	
+	
+
+}



More information about the jbosstools-commits mailing list