I am trying to create a plugin that loads different resources taken from the loaded project. I am trying to register to ResourceChangeListener of the workspace in an early stage
You should investigate having a workspace save participant to handle situations before your plug-in is started normally. Few plug-ins are important enough to warrant always starting up that early without any user involvement.
http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2FresAdv_saving.htm
If you want to know the resources (i.e. projects) that are open in a workspace, you can just get the IWorkspace and look at the project contained in it.
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot rootResource = workspace.getRoot();
Then you should be able to just traverse this tree structure to find out about all the resources. Hope this helps.
Here are some resources:
You can try to use the "org.eclipse.ui.services" extension point as follows:
<extension point="org.eclipse.ui.services">
<sourceProvider provider="com.plugin.YourClass"></sourceProvider>
</extension>
YourClass is a class extends org.eclipse.ui.AbstractSourceProvider
Then your plugin will startup very early!