[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