### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.ui Index: ui/org/eclipse/jdt/internal/ui/viewsupport/JavaElementImageProvider.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/JavaElementImageProvider.java,v retrieving revision 1.52 diff -u -r1.52 JavaElementImageProvider.java --- ui/org/eclipse/jdt/internal/ui/viewsupport/JavaElementImageProvider.java 13 Apr 2005 17:35:12 -0000 1.52 +++ ui/org/eclipse/jdt/internal/ui/viewsupport/JavaElementImageProvider.java 17 Nov 2005 17:41:53 -0000 @@ -33,6 +33,7 @@ import org.eclipse.jdt.core.IPackageFragment; import org.eclipse.jdt.core.IPackageFragmentRoot; import org.eclipse.jdt.core.IType; +import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.ui.JavaElementImageDescriptor; @@ -111,7 +112,7 @@ return getJavaImageDescriptor((IJavaElement) element, flags); } else if (element instanceof IFile) { IFile file= (IFile) element; - if ("java".equals(file.getFileExtension())) { //$NON-NLS-1$ + if (JavaCore.isJavaLikeFileName(file.getName())) { return getCUResourceImageDescriptor(file, flags); // image for a CU not on the build path } return getWorkbenchImageDescriptor(file, flags); Index: ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ExclusionInclusionDialog.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ExclusionInclusionDialog.java,v retrieving revision 1.11 diff -u -r1.11 ExclusionInclusionDialog.java --- ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ExclusionInclusionDialog.java 18 May 2005 14:47:15 -0000 1.11 +++ ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ExclusionInclusionDialog.java 17 Nov 2005 17:41:54 -0000 @@ -43,6 +43,7 @@ import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.internal.corext.util.Messages; @@ -261,14 +262,22 @@ return new Status(IStatus.INFO, JavaPlugin.getPluginId(), IStatus.INFO, message, null); } - private String completeName(String name) { - if (!name.endsWith(".java")) { //$NON-NLS-1$ - name= name + "/"; //$NON-NLS-1$ - name= name.replace('.', '/'); - return name; - } - return name; - } + /** + * Add a '/' at the end of the name if + * it does not end with '.java', or other Java-like extension. + * + * @param name append '/' at the end if + * necessary + * @return modified string + */ + private static String completeName(String name) { + if (!JavaCore.isJavaLikeFileName(name)) { + name= name + "/"; //$NON-NLS-1$ + name= name.replace('.', '/'); + return name; + } + return name; + } private boolean canEdit(List selected) { return selected.size() == 1; Index: ui/org/eclipse/jdt/internal/ui/text/correction/ReorgCorrectionsSubProcessor.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ReorgCorrectionsSubProcessor.java,v retrieving revision 1.55 diff -u -r1.55 ReorgCorrectionsSubProcessor.java --- ui/org/eclipse/jdt/internal/ui/text/correction/ReorgCorrectionsSubProcessor.java 24 Oct 2005 13:46:43 -0000 1.55 +++ ui/org/eclipse/jdt/internal/ui/text/correction/ReorgCorrectionsSubProcessor.java 17 Nov 2005 17:41:53 -0000 @@ -115,8 +115,7 @@ String currTypeName= buffer.getText(problem.getOffset(), problem.getLength()); proposals.add(new CorrectMainTypeNameProposal(cu, context, currTypeName, 5)); - - String newCUName= currTypeName + ".java"; //$NON-NLS-1$ + String newCUName= currTypeName + JavaModelUtil.getCompilationUnitExtension(cu); ICompilationUnit newCU= ((IPackageFragment) (cu.getParent())).getCompilationUnit(newCUName); if (!newCU.exists() && !isLinked && !JavaConventions.validateCompilationUnitName(newCUName).matches(IStatus.ERROR)) { RenameCompilationUnitChange change= new RenameCompilationUnitChange(cu, newCUName); Index: core extension/org/eclipse/jdt/internal/corext/buildpath/ClasspathModifier.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/buildpath/ClasspathModifier.java,v retrieving revision 1.24 diff -u -r1.24 ClasspathModifier.java --- core extension/org/eclipse/jdt/internal/corext/buildpath/ClasspathModifier.java 10 Nov 2005 12:01:34 -0000 1.24 +++ core extension/org/eclipse/jdt/internal/corext/buildpath/ClasspathModifier.java 17 Nov 2005 17:41:46 -0000 @@ -1691,14 +1691,14 @@ /** * Add a '/' at the end of the name if - * it does not end with '.java'. + * it does not end with '.java', or other Java-like extension. * * @param name append '/' at the end if * necessary * @return modified string */ private static String completeName(String name) { - if (!name.endsWith(".java")) { //$NON-NLS-1$ + if (!JavaCore.isJavaLikeFileName(name)) { name= name + "/"; //$NON-NLS-1$ name= name.replace('.', '/'); return name; Index: ui/org/eclipse/jdt/internal/ui/wizards/ClassPathDetector.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/ClassPathDetector.java,v retrieving revision 1.25 diff -u -r1.25 ClassPathDetector.java --- ui/org/eclipse/jdt/internal/ui/wizards/ClassPathDetector.java 21 Oct 2005 16:52:58 -0000 1.25 +++ ui/org/eclipse/jdt/internal/ui/wizards/ClassPathDetector.java 17 Nov 2005 17:41:54 -0000 @@ -370,7 +370,7 @@ if (proxy.getType() == IResource.FILE) { String name= proxy.getName(); - if (hasExtension(name, ".java") && isValidCUName(name)) { //$NON-NLS-1$ + if (isValidCUName(name)) { visitCompilationUnit((IFile) proxy.requestResource()); } else if (hasExtension(name, ".class")) { //$NON-NLS-1$ fClassFiles.add(proxy.requestResource()); Index: ui/org/eclipse/jdt/internal/ui/jarpackager/JarFileExportOperation.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarFileExportOperation.java,v retrieving revision 1.90 diff -u -r1.90 JarFileExportOperation.java --- ui/org/eclipse/jdt/internal/ui/jarpackager/JarFileExportOperation.java 21 Oct 2005 16:52:58 -0000 1.90 +++ ui/org/eclipse/jdt/internal/ui/jarpackager/JarFileExportOperation.java 17 Nov 2005 17:41:51 -0000 @@ -677,7 +677,8 @@ /** * Answers whether the given resource is a Java file. - * The resource must be a file whose file name ends with ".java". + * The resource must be a file whose file name ends with ".java", + * or an extension defined as Java source. * * @return a true if the given resource is a Java file */ @@ -685,7 +686,7 @@ return file != null && file.getType() == IResource.FILE && file.getFileExtension() != null - && file.getFileExtension().equalsIgnoreCase("java"); //$NON-NLS-1$ + && JavaCore.isJavaLikeFileName(file.getName()); } /** Index: core extension/org/eclipse/jdt/internal/corext/util/JavaModelUtil.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/util/JavaModelUtil.java,v retrieving revision 1.102 diff -u -r1.102 JavaModelUtil.java --- core extension/org/eclipse/jdt/internal/corext/util/JavaModelUtil.java 7 Nov 2005 17:59:07 -0000 1.102 +++ core extension/org/eclipse/jdt/internal/corext/util/JavaModelUtil.java 17 Nov 2005 17:41:47 -0000 @@ -817,5 +817,18 @@ return defaultCompliance; } - + /** + * Return the extension of a compilation unit, which is + * usually (but not always) ".java" + * @param cu a compilation unit + * @return the extension for the compilation unit + */ + public static String getCompilationUnitExtension(ICompilationUnit cu) { + String name = cu.getElementName(); + int i = name.lastIndexOf('.'); + if (i != -1) { + return name.substring(i); + } + return ".java"; //$NON-NLS-1$ + } } Index: core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/RenameTypeProcessor.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/RenameTypeProcessor.java,v retrieving revision 1.62 diff -u -r1.62 RenameTypeProcessor.java --- core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/RenameTypeProcessor.java 14 Nov 2005 11:33:36 -0000 1.62 +++ core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/RenameTypeProcessor.java 17 Nov 2005 17:41:49 -0000 @@ -836,9 +836,11 @@ if (willRenameCU()) { IResource resource= ResourceUtil.getResource(fType); if (resource != null && resource.isLinked()) { - result.add(new RenameResourceChange(ResourceUtil.getResource(fType), getNewElementName() + ".java")); //$NON-NLS-1$) + String ext = '.' + resource.getFileExtension(); + result.add(new RenameResourceChange(ResourceUtil.getResource(fType), getNewElementName() + ext)); } else { - result.add(new RenameCompilationUnitChange(fType.getCompilationUnit(), getNewElementName() + ".java")); //$NON-NLS-1$ + String ext = JavaModelUtil.getCompilationUnitExtension(fType.getCompilationUnit()); + result.add(new RenameCompilationUnitChange(fType.getCompilationUnit(), getNewElementName() + ext)); } } monitor.worked(1); @@ -861,7 +863,8 @@ } private boolean willRenameCU() throws CoreException{ - if (! (Checks.isTopLevel(fType) && fType.getCompilationUnit().getElementName().equals(fType.getElementName() + ".java"))) //$NON-NLS-1$ + String name = JavaCore.removeJavaLikeExtension(fType.getCompilationUnit().getElementName()); + if (! (Checks.isTopLevel(fType) && name.equals(fType.getElementName()))) return false; if (! checkNewPathValidity().isOK()) return false; Index: ui refactoring/org/eclipse/jdt/internal/ui/refactoring/reorg/RenameCuWizard.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/reorg/RenameCuWizard.java,v retrieving revision 1.12 diff -u -r1.12 RenameCuWizard.java --- ui refactoring/org/eclipse/jdt/internal/ui/refactoring/reorg/RenameCuWizard.java 10 Nov 2005 21:26:03 -0000 1.12 +++ ui refactoring/org/eclipse/jdt/internal/ui/refactoring/reorg/RenameCuWizard.java 17 Nov 2005 17:41:50 -0000 @@ -11,6 +11,8 @@ package org.eclipse.jdt.internal.ui.refactoring.reorg; +import org.eclipse.jdt.core.JavaCore; + import org.eclipse.jdt.internal.corext.refactoring.rename.RenameCompilationUnitProcessor; import org.eclipse.jdt.internal.corext.refactoring.tagging.INameUpdating; @@ -35,7 +37,7 @@ } protected RefactoringStatus validateNewName(String newName) { - String fullName= newName + ".java"; //$NON-NLS-1$ + String fullName= newName + JAVA_FILE_EXT; return super.validateNewName(fullName); } @@ -47,9 +49,7 @@ protected String getNewName(INameUpdating nameUpdating) { String result= nameUpdating.getNewElementName(); // If renaming a CU we have to remove the java file extension - if (result != null && result.endsWith(JAVA_FILE_EXT)) - result= result.substring(0, result.length() - JAVA_FILE_EXT.length()); - return result; + return JavaCore.removeJavaLikeExtension(result); } }; } Index: ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/newsourcepage/DialogPackageExplorerActionGroup.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/newsourcepage/DialogPackageExplorerActionGroup.java,v retrieving revision 1.20 diff -u -r1.20 DialogPackageExplorerActionGroup.java --- ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/newsourcepage/DialogPackageExplorerActionGroup.java 31 Oct 2005 15:07:32 -0000 1.20 +++ ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/newsourcepage/DialogPackageExplorerActionGroup.java 17 Nov 2005 17:41:55 -0000 @@ -41,10 +41,10 @@ import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jdt.internal.corext.buildpath.CreateFolderOperation; import org.eclipse.jdt.internal.corext.buildpath.AddSelectedSourceFolderOperation; import org.eclipse.jdt.internal.corext.buildpath.ClasspathModifier; import org.eclipse.jdt.internal.corext.buildpath.ClasspathModifierOperation; +import org.eclipse.jdt.internal.corext.buildpath.CreateFolderOperation; import org.eclipse.jdt.internal.corext.buildpath.EditFiltersOperation; import org.eclipse.jdt.internal.corext.buildpath.EditOutputFolderOperation; import org.eclipse.jdt.internal.corext.buildpath.ExcludeOperation; @@ -621,7 +621,7 @@ private static int getFileType(IFile file, IJavaProject project) throws JavaModelException { if (ClasspathModifier.isArchive(file, project)) return ARCHIVE; - if (!file.getName().endsWith(".java")) //$NON-NLS-1$ + if (!JavaCore.isJavaLikeFileName(file.getName())) return FILE; IContainer fileParent= file.getParent(); if (fileParent.getFullPath().equals(project.getPath())) { Index: ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocOptionsManager.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocOptionsManager.java,v retrieving revision 1.58 diff -u -r1.58 JavadocOptionsManager.java --- ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocOptionsManager.java 14 Nov 2005 22:43:09 -0000 1.58 +++ ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocOptionsManager.java 17 Nov 2005 17:41:52 -0000 @@ -518,7 +518,7 @@ StringTokenizer tokenizer= new StringTokenizer(sourcefiles, ","); //$NON-NLS-1$ while (tokenizer.hasMoreTokens()) { String name= tokenizer.nextToken().trim(); - if (name.endsWith(".java")) { //$NON-NLS-1$ + if (JavaCore.isJavaLikeFileName(name)) { IPath path= makeAbsolutePathFromRelative(new Path(name)); //if unable to create an absolute path the the resource skip it if (path != null) {