Author: rob.stryker(a)jboss.com
Date: 2008-05-16 22:22:23 -0400 (Fri, 16 May 2008)
New Revision: 8169
Modified:
branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java
branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java
Log:
JBIDE-2211 - number of fiels changed in event log
Modified:
branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java
===================================================================
---
branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java 2008-05-16
23:00:31 UTC (rev 8168)
+++
branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java 2008-05-17
02:22:23 UTC (rev 8169)
@@ -72,11 +72,19 @@
int size = projects2.length;
for (int i = 0; i < size; i++) {
if (projects2[i].isAccessible()) {
- try {
- createModules(projects2[i]);
- } catch(ArchivesModelException ame) {
- IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID,
ame.getMessage(), ame);
- JBossServerCorePlugin.getDefault().getLog().log(status);
+
+ if( !ArchivesModel.instance().isProjectRegistered(projects2[i].getLocation())) {
+ if( ArchivesModel.instance().canReregister(projects2[i].getLocation()))
+ // registration should also add this to the factory manually, so do not create the
module
+ ArchivesModel.instance().registerProject(projects2[i].getLocation(), new
NullProgressMonitor());
+ } else {
+ try {
+ // project is already registered. create the module
+ createModules(projects2[i]);
+ } catch(ArchivesModelException ame) {
+ IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID,
ame.getMessage(), ame);
+ JBossServerCorePlugin.getDefault().getLog().log(status);
+ }
}
}
}
@@ -85,13 +93,9 @@
}
protected void createModules(IProject project) throws ArchivesModelException {
- IArchive[] packs = ModelUtil.getProjectArchives(project.getLocation());
- if( packs != null && packs.length > 0 ) {
+ IArchive[] packages = ModelUtil.getProjectArchives(project.getLocation());
+ if( packages != null && packages.length > 0 ) {
IModule module;
- if( !ArchivesModel.instance().isProjectRegistered(project.getLocation())) {
- ArchivesModel.instance().registerProject(project.getLocation(), new
NullProgressMonitor());
- }
- IArchive[] packages = ModelUtil.getProjectArchives(project.getLocation());
boolean requiresSave = ensureArchivesHaveIDs(project, packages);
ArrayList<IModule> mods = new ArrayList<IModule>();
for( int i = 0; i < packages.length; i++ ) {
@@ -103,13 +107,14 @@
mods.add(module);
}
projectToModules.put(project.getLocation(), mods);
- if( requiresSave )
+ if( requiresSave ) {
try {
ArchivesModel.instance().save(project.getLocation(),
new NullProgressMonitor());
} catch( ArchivesModelException ame ) {
}
+ }
}
}
Modified:
branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java
===================================================================
---
branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java 2008-05-16
23:00:31 UTC (rev 8168)
+++
branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java 2008-05-17
02:22:23 UTC (rev 8169)
@@ -32,6 +32,8 @@
import org.eclipse.core.runtime.Status;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.model.IModuleFile;
+import org.eclipse.wst.server.core.model.IModuleFolder;
import org.eclipse.wst.server.core.model.IModuleResource;
import org.eclipse.wst.server.core.model.IModuleResourceDelta;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
@@ -79,9 +81,9 @@
if( publishType == REMOVE_PUBLISH ) {
removeModule(module2, monitor);
} else if( publishType == FULL_PUBLISH ) {
+ publishModule(module2, false, monitor);
+ } else if( publishType == INCREMENTAL_PUBLISH ) {
publishModule(module2, true, monitor);
- } else if( publishType == INCREMENTAL_PUBLISH ) {
- publishModule(module2, false, monitor);
}
}catch(Exception e) {
IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID,
"Error during publish", e);
@@ -117,9 +119,11 @@
PublisherFileUtilListener listener = new PublisherFileUtilListener(eventRoot);
if( incremental ) {
+ eventRoot.setProperty(PublisherEventLogger.CHANGED_FILE_COUNT, countChanges(delta));
publishFromDelta(module, destPathRoot, sourcePath.removeLastSegments(1), delta,
listener);
} else {
// full publish, copy whole folder or file
+ eventRoot.setProperty(PublisherEventLogger.CHANGED_FILE_COUNT,
countConcreteFiles(module));
FileUtil.fileSafeCopy(sourcePath.toFile(),
destPathRoot.append(sourcePath.lastSegment()).toFile(), listener);
}
}
@@ -131,6 +135,44 @@
publishFromDeltaHandle(delta[i], destPathRoot, sourcePrefix, changedFiles, listener);
}
}
+
+ protected int countChanges(IModuleResourceDelta[] deltas) {
+ IModuleResource res;
+ int count = 0;
+ if( deltas == null ) return 0;
+ for( int i = 0; i < deltas.length; i++ ) {
+ res = deltas[i].getModuleResource();
+ if( res != null && res instanceof IModuleFile)
+ count++;
+ count += countChanges(deltas[i].getAffectedChildren());
+ }
+ return count;
+ }
+
+ protected int countConcreteFiles(IModule module) {
+ PackagedModuleDelegate delegate =
(PackagedModuleDelegate)module.loadAdapter(PackagedModuleDelegate.class, new
NullProgressMonitor());
+ try {
+ ArrayList list = new ArrayList();
+ countConcreteFiles(delegate.members()[0], list);
+ return list.size();
+ } catch( CoreException ce ) {
+
+ }
+ return -1;
+ }
+ protected void countConcreteFiles(IModuleResource mr, ArrayList list) {
+ if( mr instanceof IExtendedModuleResource) {
+ IExtendedModuleResource emr = ((IExtendedModuleResource)mr);
+ IPath p = emr.getConcreteDestFile();
+ if( mr instanceof IModuleFile && !list.contains(p)) list.add(p);
+ if( mr instanceof IModuleFolder) {
+ IModuleResource[] children = ((IModuleFolder)mr).members();
+ for( int i = 0; i < children.length; i++ )
+ countConcreteFiles(children[i], list);
+ }
+ }
+ }
+
protected void publishFromDeltaHandle(IModuleResourceDelta delta, IPath destRoot,
IPath sourcePrefix, ArrayList<IPath> changedFiles, PublisherFileUtilListener
listener) {
switch( delta.getKind()) {
@@ -160,7 +202,7 @@
}
return;
} else {
- System.out.println("not an extended module resource. need help here");
+ // TODO
return;
}
case IModuleResourceDelta.ADDED:
@@ -174,7 +216,7 @@
}
return;
} else {
- System.out.println("not an extended module resource. need help here");
+ // TODO
return;
}
case IModuleResourceDelta.CHANGED: