|
Lines 77-82
Link Here
|
| 77 |
private IContainer[] cachedOutputContainers; |
77 |
private IContainer[] cachedOutputContainers; |
| 78 |
private HashMap cachedOutputMappings; |
78 |
private HashMap cachedOutputMappings; |
| 79 |
private HashMap cachedSourceOutputPairs; |
79 |
private HashMap cachedSourceOutputPairs; |
|
|
80 |
private boolean isSingleJavaOutputNonSource = false; |
| 80 |
|
81 |
|
| 81 |
/** |
82 |
/** |
| 82 |
* Constructor for J2EEFlexProjDeployable. |
83 |
* Constructor for J2EEFlexProjDeployable. |
|
Lines 666-671
Link Here
|
| 666 |
* <code>false</code> otherwise |
667 |
* <code>false</code> otherwise |
| 667 |
*/ |
668 |
*/ |
| 668 |
public boolean isSingleRootStructure() { |
669 |
public boolean isSingleRootStructure() { |
|
|
670 |
isSingleJavaOutputNonSource = false; |
| 669 |
StructureEdit edit = null; |
671 |
StructureEdit edit = null; |
| 670 |
try { |
672 |
try { |
| 671 |
edit = StructureEdit.getStructureEditForRead(getProject()); |
673 |
edit = StructureEdit.getStructureEditForRead(getProject()); |
|
Lines 730-735
Link Here
|
| 730 |
// output folder (something like classes or bin) is not a source folder, JDT copies all files |
732 |
// output folder (something like classes or bin) is not a source folder, JDT copies all files |
| 731 |
// (including non Java files) to this folder, so every resource needed at runtime is located |
733 |
// (including non Java files) to this folder, so every resource needed at runtime is located |
| 732 |
// in a single directory. |
734 |
// in a single directory. |
|
|
735 |
isSingleJavaOutputNonSource = true; |
| 733 |
return true; |
736 |
return true; |
| 734 |
} else { |
737 |
} else { |
| 735 |
// Don't implement at this time. Currently, we claim single-rooted when ejbModlule is the output folder. However, |
738 |
// Don't implement at this time. Currently, we claim single-rooted when ejbModlule is the output folder. However, |
|
Lines 856-863
Link Here
|
| 856 |
*/ |
859 |
*/ |
| 857 |
private IModuleResource[] getOptimizedMembers() throws CoreException { |
860 |
private IModuleResource[] getOptimizedMembers() throws CoreException { |
| 858 |
if (component != null) { |
861 |
if (component != null) { |
| 859 |
// For java utility modules, we can just use the output container, at this point we know there is only one |
862 |
if (isSingleJavaOutputNonSource) { |
| 860 |
if (J2EEProjectUtilities.isUtilityProject(getProject())) { |
863 |
// We determined when testing for a single root structure that this project has |
|
|
864 |
// one output folder and that output folder is not a source folder. Since the |
| 865 |
// output folder (for example, classes or bin) is not a source folder, JDT copies all files |
| 866 |
// (including non Java files) to this folder, so every resource needed at runtime is located |
| 867 |
// in that single output directory. |
| 861 |
return getModuleResources(Path.EMPTY, getJavaOutputFolders()[0]); |
868 |
return getModuleResources(Path.EMPTY, getJavaOutputFolders()[0]); |
| 862 |
} |
869 |
} |
| 863 |
// For J2EE modules, we use the contents of the content root |
870 |
// For J2EE modules, we use the contents of the content root |