Bug 31083 PackageView - logic container doesn't show up in classpath order [package explorer]
Build 20030206 The JRE System Library container shows up at the bottom of my project's children, where it is actually ordered first on my build path. This feels inconsistent with our approach of sticking to the build path.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/JavaElementSorter.java
int cat1= category(e1);
		int cat2= category(e2);
		if (cat1 != cat2)
			return cat1 - cat2;
		
		if (cat1 == PROJECTS) {
			IWorkbenchAdapter a1= (IWorkbenchAdapter)((IAdaptable)e1).getAdapter(IWorkbenchAdapter.class);
			IWorkbenchAdapter a2= (IWorkbenchAdapter)((IAdaptable)e2).getAdapter(IWorkbenchAdapter.class);
				return getCollator().compare(a1.getLabel(e1), a2.getLabel(e2));
		}
			
		if (cat1 == PACKAGEFRAGMENTROOTS) {
			IPackageFragmentRoot root1= JavaModelUtil.getPackageFragmentRoot((IJavaElement)e1);
			IPackageFragmentRoot root2= JavaModelUtil.getPackageFragmentRoot((IJavaElement)e2);
			if (!root1.getPath().equals(root2.getPath())) {
				int p1= getClassPathIndex(root1);
				int p2= getClassPathIndex(root2);
				if (p1 != p2) {
					return p1 - p2;
				}
			}
		}
		
		if (cat1 == PROJECTS || cat1 == RESOURCES || cat1 == RESOURCEFOLDERS || cat1 == STORAGE || cat1 == OTHERS) {
			return compareWithLabelProvider(viewer, e1, e2);
		}
		
		String name1= ((IJavaElement) e1).getElementName();
		String name2= ((IJavaElement) e2).getElementName();