Eclipse and Plug-in Dependency Fun

Well,

I have just had a load of fun, you see, I wanted to update my plugin ESftp with a new version, with FTP capabilities for example and I fired up eclipse and tried to open the original project. What I found was really weird.

import org.eclipse.ui;

This line in particular, said to me that it cannot import org.eclipse because it cannot be resolved!?!?!?! What???

Then, my whole source code tree lit up like a red christmas tree, red lights everything, NOTHING works, I cannot figure out what has happened, this is a disaster.

So, I created a new plugin project and started to look for differences, I found that in the new project, I had a “Plug-in Dependency” group which has like 30 jar files inside it, these are apparently the libraries which eclipse links against when it compiles my programs. So I think the reason why my project doesnt work is because the original DOES NOT HAVE THIS PLUGIN GROUP/CONTAINER.

So, I go looking for ways to reset my project, mayeb to trigger eclipse into working again, I try going through the manifest.mf file, the eclipse preferences, I run eclipse -clean, I try deleteing the workspace and adding the project to a blank workspace. In the end, I grabbed eclipse 3.3 europa (brand new release) and installed that, thinking that my distribution was just SO BROKEN that it could not be saved and I needed a new one.

So, now I create a new plugin project, aha, I have the Plug-in Dependency container and YES!!!! it’s full of the correct jar files I expect, so, I do what I thought was best and copied the files from the original project to the new project. I closed the eclipse editor to see if I could save the project in this state and then reopened it.

OMG! THE PLUG-IN DEPENDENCY CONTAINER HAS VANISHED?????

WHAT?!?!?! Where??? I just saved it and closed eclipse and it was RIGHT THERE. But now, it’s gone and there is nothing that can bring it back again, so I think I found a bug in eclipse. I took a copy of the project which works, just in case I thought eclipse would corrupt it and maybe if I had a copy, I would be able to test it and see the differences. I found eclipse made lots of changes to lots of files, but opening the original in eclipse gave me the same result, I had no plug-in dependency container again.

I have no idea what is going on here.

Then, I had a stupid idea, what if it was case sensitivity causing the problems? You see, I run the projects from my VFAT (FAT32, win98) formatted portable USB harddisk. Which of course, the filesystem cannot handle case sensitive names, so I thought, what if I tried to change the case of the names for the manifest, cause I remember that they are USUALLY IN CAPTIALS AND NOT SMALL LETTERS

That last sentence is the key, you see, once I changed the following items

  • meta-inf
  • meta-inf/manifest.mf

From lower case into

  • META-INF
  • META-INF/MANIFEST.MF

All of a sudden, my Plugin dependency container is back again and it’s full of jar files, ready to link.

THAT WAS THE REASON, so if you have a similar reason in the future, check the case for the filenames and change them back to upper case and see if that fixes your problem, cause it fixed mine, only 2, 3, hours of my working day wasted. But nevermind

2 thoughts on “Eclipse and Plug-in Dependency Fun”

Leave a Reply

Your email address will not be published. Required fields are marked *