[148269] Generic EarModuleAssembler now checks for the need to publish and packs if child module requires a publish
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java
index c801b1b..317d85a 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java
@@ -140,7 +140,7 @@
 		long time = System.currentTimeMillis();
 		AbstractModuleAssembler assembler = AbstractModuleAssembler.Factory.getModuleAssembler(getModule()[0], getServer());
 		assembler.assemble(monitor);
-		Trace.trace(Trace.PERFORMANCE, "AntPublisher.assembleModule(): <" + (System.currentTimeMillis()-time) + "> module: "+getModule()[0] ); //$NON-NLS-1$ //$NON-NLS-2$
+		Trace.trace(Trace.PERFORMANCE, "AntPublisher.assembleModule(): <" + (System.currentTimeMillis()-time) + "ms> module: "+getModule()[0] ); //$NON-NLS-1$ //$NON-NLS-2$
 	}
 
 	/**
@@ -356,7 +356,7 @@
         {
             ILaunchConfiguration launchConfig = wc.doSave();
             launchConfig.launch(ILaunchManager.RUN_MODE, monitor, false, true);
-            Trace.trace(Trace.PERFORMANCE, "AntPublisher.runAnt():<" + (System.currentTimeMillis()-time) + "> module: "+getModule()[0] ); //$NON-NLS-1$ //$NON-NLS-2$
+            Trace.trace(Trace.PERFORMANCE, "AntPublisher.runAnt():<" + (System.currentTimeMillis()-time) + "ms> module: "+getModule()[0] ); //$NON-NLS-1$ //$NON-NLS-2$
         }
         
         
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java
index 82488b2..8cc4d4e 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java
@@ -1,5 +1,5 @@
 /***************************************************************************************************
- * Copyright (c) 2005 Eteration A.S. and Gorkem Ercan. All rights reserved. This program and the
+ * Copyright (c) 2009 Eteration A.S. and Gorkem Ercan. All rights reserved. This program and the
  * accompanying materials are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
@@ -21,10 +21,10 @@
 import org.eclipse.jst.server.core.IJ2EEModule;
 import org.eclipse.jst.server.generic.core.internal.CorePlugin;
 import org.eclipse.jst.server.generic.core.internal.GenericServer;
+import org.eclipse.jst.server.generic.core.internal.Trace;
 import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.internal.Server;
+import org.eclipse.wst.server.core.IServer;
 import org.eclipse.wst.server.core.model.IModuleResource;
-import org.eclipse.wst.server.core.model.IModuleResourceDelta;
 import org.eclipse.wst.server.core.util.ProjectModule;
 
 /**
@@ -63,14 +63,15 @@
 		return parent;
 	}
 	/**
-     * Checks if there has been a change in the published resources.
+     * Checks if the publish state of the child module has changed.
      * @param module
      * @return module changed
 	 */
 	private boolean shouldRepack( IModule module ) {
-        final Server server = (Server) fServer.getServer();
-        final IModule[] modules ={module}; 
-        return server.hasPublishedResourceDelta( modules );
+        final IModule[] modules ={fModule, module};
+        boolean repack = (IServer.PUBLISH_STATE_NONE != fServer.getServer().getModulePublishState(modules));
+        Trace.trace(Trace.FINEST, "EarModuleAssembler should repack returns "+ Boolean.toString(repack)+ " for module "+module);  //$NON-NLS-1$//$NON-NLS-2$
+        return repack;
         
     }
 
@@ -84,7 +85,6 @@
 			try {
 				packager =new ModulePackager(realDestination,false);
 				packager.pack(webAppPath.toFile(),webAppPath.toOSString());
-			
 			} catch (IOException e) {
 				IStatus status = new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 0,
 						"unable to assemble module", e); //$NON-NLS-1$
@@ -92,8 +92,7 @@
 			}
 			finally{
 				if(packager!=null)
-				{
-					
+				{		
 					try {
 						packager.finished();
 					} catch (IOException e) {
@@ -102,8 +101,6 @@
 				}
 				
 			}
-			
-			
 		}
 		else
 		{