[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal ...
Marshall Culpepper
mculpepper at jboss.com
Wed Nov 22 16:03:24 EST 2006
User: mculpepper
Date: 06/11/22 16:03:24
Modified: core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal
PackageBuildDelegate.java
Log:
changed findMatchingFileset to findMatchingFilesets (this will allow for multiple filesets in the same project to reference the same file.. next we need to trigger builds in secondary projects when a fileset from that project references a file from another)
Revision Changes Path
1.3 +63 -54 jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal/PackageBuildDelegate.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PackageBuildDelegate.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal/PackageBuildDelegate.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- PackageBuildDelegate.java 19 Nov 2006 01:09:25 -0000 1.2
+++ PackageBuildDelegate.java 22 Nov 2006 21:03:24 -0000 1.3
@@ -167,8 +167,10 @@
}
}
- private IPackageFileSet findMatchingFileset (IFile file)
+ private IPackageFileSet[] findMatchingFilesets (IFile file)
{
+ ArrayList filesets = new ArrayList();
+
for (Iterator iter = scannerCache.keySet().iterator(); iter.hasNext(); )
{
IPackage pkg = (IPackage) iter.next();
@@ -181,11 +183,12 @@
if (fileset.matchesFile(scanner, file))
{
- return fileset;
+ filesets.add(fileset);
}
}
}
- return null;
+
+ return (IPackageFileSet[]) filesets.toArray(new IPackageFileSet[filesets.size()]);
}
private void buildFileset (IPackageFileSet fileset, boolean checkStamps)
@@ -200,7 +203,7 @@
fireFinishedCollectingFileSet(fileset);
for (int i = 0; i < matchingFiles.length; i++)
{
- updateFile(matchingFiles[i], fileset, checkStamps);
+ updateFile(matchingFiles[i], new IPackageFileSet[] { fileset }, checkStamps);
}
} else {
fireStartedCollectingFileSet(fileset);
@@ -374,17 +377,17 @@
for (Iterator iter = filesToCopy.keySet().iterator(); iter.hasNext(); )
{
IFile file = (IFile)iter.next();
- IPackageFileSet fileset = (IPackageFileSet) filesToCopy.get(file);
+ IPackageFileSet[] filesets = (IPackageFileSet[]) filesToCopy.get(file);
- updateFile(file, fileset, false);
+ updateFile(file, filesets, false);
}
for (Iterator iter = filesToRemove.keySet().iterator(); iter.hasNext(); )
{
IFile file = (IFile)iter.next();
- IPackageFileSet fileset = (IPackageFileSet) filesToRemove.get(file);
+ IPackageFileSet[] filesets = (IPackageFileSet[]) filesToRemove.get(file);
- removeFile(file, fileset);
+ removeFile(file, filesets);
}
for (Iterator iter = nodesToUpdate.iterator(); iter.hasNext(); )
@@ -418,7 +421,7 @@
private void processFileDelta (IProject project, IResourceDelta delta, IProgressMonitor monitor)
{
IFile file = (IFile) delta.getResource();
- IPackageFileSet fileset = findMatchingFileset(file);
+ IPackageFileSet[] filesets = findMatchingFilesets(file);
IPackage pkg = getPackageFromFile(file);
if ((delta.getFlags() & IResourceDelta.REMOVED) > 0)
@@ -430,19 +433,19 @@
}
}
- if (fileset != null)
+ if (filesets != null && filesets.length > 0)
{
if ((delta.getFlags() & IResourceDelta.ADDED) > 0)
{
- filesToCopy.put(file, fileset);
+ filesToCopy.put(file, filesets);
}
else if ((delta.getFlags() & IResourceDelta.CONTENT) > 0 || (delta.getFlags() & IResourceDelta.CHANGED) > 0)
{
- filesToCopy.put(file, fileset);
+ filesToCopy.put(file, filesets);
}
else if ((delta.getFlags() & IResourceDelta.REMOVED) > 0)
{
- filesToRemove.put(file, fileset);
+ filesToRemove.put(file, filesets);
}
}
}
@@ -550,13 +553,15 @@
return copyTo;
}
- private void updateFile(IFile file, IPackageFileSet fileset, boolean checkStamps)
+ private void updateFile(IFile file, IPackageFileSet[] filesets, boolean checkStamps)
{
- IPath copyTo = getFileDestinationPath(file, fileset);
+ for (int i = 0; i < filesets.length; i++)
+ {
+ IPath copyTo = getFileDestinationPath(file, filesets[i]);
if (checkStamps)
{
- File packageFile = createFile(fileset, copyTo);
+ File packageFile = createFile(filesets[i], copyTo);
long stamp = file.getModificationStamp();
if (stamp != IResource.NULL_STAMP && packageFile.exists() && stamp >= packageFile.lastModified())
{
@@ -572,7 +577,7 @@
try {
try {
in = file.getContents();
- out = createFileOutputStream(fileset, copyTo);
+ out = createFileOutputStream(filesets[i], copyTo);
File.cp(in, out);
} catch (FileNotFoundException e) {
Trace.trace(getClass(), e);
@@ -596,6 +601,7 @@
}
}
}
+ }
private void updatePath(IPath path, IPackageFileSet fileset, boolean checkStamps)
{
@@ -643,12 +649,15 @@
}
}
- private void removeFile(IFile file, IPackageFileSet fileset)
+ private void removeFile(IFile file, IPackageFileSet[] filesets)
{
- File packagedFile = new File(getFileDestinationPath(file, fileset).toFile());
+ for (int i = 0; i < filesets.length; i++)
+ {
+ File packagedFile = new File(getFileDestinationPath(file, filesets[i]).toFile());
if (packagedFile.exists()) packagedFile.deleteAll();
}
+ }
private void removePath(IPath path, IPackageFileSet fileset)
{
@@ -724,7 +733,7 @@
fireFinishedCollectingFileSet(fileset);
for (int i = 0; i < matchingFiles.length; i++)
{
- removeFile(matchingFiles[i], fileset);
+ removeFile(matchingFiles[i], new IPackageFileSet[] { fileset });
}
} else {
fireStartedCollectingFileSet(fileset);
More information about the jboss-cvs-commits
mailing list